# -*- coding: utf-8 -*-
from fieldclasses import *
from objectclass import *
import idfglobals




class Version(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Version Identifier","3.1.0",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("Version")





class SimulationControl(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldYesNo(self,"Do Zone Sizing Calculation","No","",["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Do System Sizing Calculation","No","",["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Do Plant Sizing Calculation","No","",["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Run Simulation for Sizing Periods","Yes","",["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Run Simulation for Weather File Run Periods","Yes","",["Yes","No",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("SimulationControl")





class Building(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","NONE",""))
        self.InsertField(FieldReal(self,"North Axis","0.0",("degrees from true North","Units: deg",),"","","",""))
        self.InsertField(FieldChoice(self,"Terrain","Suburbs",(" Country=FlatOpenCountry | Suburbs=CountryTownsSuburbs | City=CityCenter | Ocean=body of water (5km) | Urban=Urban-Industrial-Forest","",),["Country","Suburbs","City","Ocean","Urban",]))
        self.InsertField(FieldReal(self,"Loads Convergence Tolerance Value",".04",("Loads Convergence Tolerance Value is a fraction of load","",),"",.5,0.0,""))
        self.InsertField(FieldReal(self,"Temperature Convergence Tolerance Value",".4","","",.5,0.0,""))
        self.InsertField(FieldChoice(self,"Solar Distribution","FullExterior",(" MinimalShadowing | FullExterior | FullInteriorAndExterior | FullExteriorWithReflections | FullInteriorAndExteriorWithReflections","",),["MinimalShadowing","FullExterior","FullInteriorAndExterior","FullExteriorWithReflections","FullInteriorAndExteriorWithReflections",]))
        self.InsertField(FieldInt(self,"Maximum Number of Warmup Days","25",("EnergyPlus will only use as many warmup days as needed to reach convergence tolerance.","This field's value should NOT be set less than 25.","",),"","",0,""))


        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("Building")





class ShadowCalculation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldInt(self,"Calculation Frequency","20",("0=Use Default Periodic Calculation|<else> calculate every <value> day","only really applicable to RunPeriods","",),1,"","",""))
        self.InsertField(FieldInt(self,"Maximum Figures in Shadow Overlap Calculations","15000",("Number of allowable figures in shadow overlap calculations","",),200,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("ShadowCalculation")





class SurfaceConvectionAlgorithm_Inside(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Algorithm","Detailed",("Simple = constant natural convection (ASHRAE)","Detailed = variable natural convection based on temperature difference (ASHRAE)","CeilingDiffuser = ACH based forced and mixed convection correlations"," for ceiling diffuser configuration with simple natural convection limit","",),["Simple","Detailed","CeilingDiffuser",]))


        self.insertMemo(("Default indoor surface heat transfer convection algorithm to be used for all zones",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceConvectionAlgorithm:Inside")





class SurfaceConvectionAlgorithm_Outside(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Algorithm","DOE-2",("Simple = ASHRAE Simple","Detailed = ASHRAE Detailed","BLAST is identical to Detailed as of version 1.2.1","TARP is identical to Detailed as of version 1.3.0","",),["Simple","Detailed","BLAST","TARP","DOE-2","MoWiTT",]))


        self.insertMemo(("Default outside convection algorithm to be used for all zones",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceConvectionAlgorithm:Outside")





class HeatBalanceAlgorithm(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Algorithm","ConductionTransferFunction","",["ConductionTransferFunction","MoisturePenetrationDepthConductionTransferFunction","ConductionFiniteDifference","CombinedHeatAndMoistureFiniteElement",]))
        self.InsertField(FieldReal(self,"Surface Temperature Upper Limit","200","",200,"","",""))


        self.insertMemo(("Determines which Heat Balance Algorithm will be used ie. CTF (Conduction Transfer Functions),","EMPD (Effective Moisture Penetration Depth with Conduction Transfer Functions).","Advanced/Research Usage: CondFD (Conduction Finite Difference)","Advanced/Research Usage: HAMT (Combined Heat And Moisture Finite Element)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatBalanceAlgorithm")





class ZoneCapacitanceMultiplier(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used for stability in predictor-corrector step by increasing air heat capacity of the zone air.","",),0.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneCapacitanceMultiplier")





class Timestep(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldInt(self,"Number of Timesteps per Hour","6",("Number in hour: normal validity 4 to 60: 6 suggested","Must be evenly divisible into 60","Allowable values include 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, and 60","Normal 6 is mimimum as lower values may cause inaccuracies","A minimum value of 20 is suggested for both ConductionFiniteDifference","and CombinedHeatAndMoistureFiniteElement surface heat balance alogorithms","",),1,60,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Simulation Parameters") 
        self.setExtensible(-1)
        self.setClassnameIDD("Timestep")





class ConvergenceLimits(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldInt(self,"Minimum System Timestep",0,("0 sets the minimum to the zone timestep (ref: Timestep)","1 is normal (ratchet down to 1 minute)","setting greater than zone timestep (in minutes) will effectively set to zone timestep","Units: minutes",),0,60,"",""))
        self.InsertField(FieldInt(self,"Maximum HVAC Iterations","20","",1,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Compliance Objects") 
        self.setExtensible(-1)
        self.setClassnameIDD("ConvergenceLimits")





class Compliance_Building(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Building Rotation for Appendix G","0.0",("Additional degrees of rotation to be used with the requirement in ASHRAE Standard 90.1 Appendix G","that states that the baseline building should be rotated in four directions.","Units: deg",),"","","",""))


        self.insertMemo(("Building level inputs related to compliance to building standards, building codes, and beyond energy code programs.",))
        self.setRequired(False)
        self.setMinfields(1)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Compliance:Building")





class Site_Location(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Latitude","0.0",("+ is North, - is South, degree minutes represented in decimal (i.e. 30 minutes is .5)","Units: deg",),-90.0,+90.0,"",""))
        self.InsertField(FieldReal(self,"Longitude","0.0",("- is West, + is East, degree minutes represented in decimal (i.e. 30 minutes is .5)","Units: deg",),-180.0,+180.0,"",""))
        self.InsertField(FieldReal(self,"Time Zone","0.0",("basic these limits on the WorldTimeZone Map (2003)"," Time relative to GMT. Decimal hours.","Units: hr",),-12.0,+14.0,"",""))
        self.InsertField(FieldReal(self,"Elevation","0.0","",-300.0,"","",6096.0))


        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:Location")





class SizingPeriod_DesignDay(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Maximum Dry-Bulb Temperature",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Daily Temperature Range","0",("Must still produce appropriate maximum dry bulb (within range)","This field is not needed if Dry-Bulb Temperature Range Modifier Type","is *delta*.","Units: deltaC",),0,"","",""))
        self.InsertField(FieldReal(self,"Humidity Indicating Conditions at Maximum Dry-Bulb",0,("this will be a wet-bulb or dewpoint temperature coincident with the","maximum temperature depending on the value of the field","Humidity Indicating Temperature Type","required-field if Relative Humidity Day Schedule is not used","",),"","","",""))
        self.InsertField(FieldReal(self,"Barometric Pressure",0,("This field's value is also checked against the calculated *standard barometric pressure*","for the location.  If out of range (>10%), then is replaced by standard value.","Units: Pa",),31000,120000,"",""))
        self.InsertField(FieldReal(self,"Wind Speed",0,"",0,40,"",""))
        self.InsertField(FieldReal(self,"Wind Direction",0,("North=0.0 East=90.0","0 and 360 are the same direction.","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Sky Clearness","0.0",("0.0 is totally unclear, 1.0 is totally clear","",),0.0,1.2,"",""))
        self.InsertField(FieldInt(self,"Rain Indicator","0",("1 is raining, 0 is not","",),0,1,"",""))
        self.InsertField(FieldInt(self,"Snow Indicator","0",("1 is Snow on Ground, 0 is no Snow on Ground","",),0,1,"",""))
        self.InsertField(FieldInt(self,"Day of Month",0,("must be valid for Month field","",),1,31,"",""))
        self.InsertField(FieldInt(self,"Month",0,"",1,12,"",""))
        self.InsertField(FieldChoice(self,"Day Type","",("Day Type selects the schedules appropriate for this design day","",),["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Holiday","SummerDesignDay","WinterDesignDay","CustomDay1","CustomDay2",]))
        self.InsertField(FieldInt(self,"Daylight Saving Time Indicator","0",("1=Yes, 0=No","",),0,1,"",""))
        self.InsertField(FieldChoice(self,"Humidity Indicating Type","WetBulb",("What Field *Humidity Indicating Conditions at Maximum Dry-Bulb* is.","Units for Wet-Bulb, Dewpoint [C]","Units for Humidity-Ratio []","Units for Enthalpy [kJ/kg]","",),["WetBulb","DewPoint","HumidityRatio","Enthalpy","Schedule",]))
        self.InsertField(FieldObjectlist(self,"Relative Humidity Day Schedule Name","",("only used when previous field is *Schedule*","the hour/time interval values should specify relative humidity (percent) from 0.0 to 100.0","",),"DayScheduleNames"))
        self.InsertField(FieldChoice(self,"Dry-Bulb Temperature Range Modifier Type","DefaultMultipliers",("Type of modifier to the dry-bulb temperature calculated for the timestep","",),["MultiplierSchedule","DifferenceSchedule","DefaultMultipliers",]))
        self.InsertField(FieldObjectlist(self,"Dry-Bulb Temperature Range Modifier Schedule Name","",("Only used when previous field is *MultiplierSchedule* or *DifferenceSchedule*.","For type *MultiplierSchedule*  the hour/time interval values should specify","range from 0.0 to 1.0 of the maximum temperature.","For type *DifferenceSchedule* the values should specify a number to be subtracted","from dry bulb maximum temperature for each timestep in the day.","Note that numbers in the delta schedules cannot be negative as that","would result in a higher maximum than the maximum previously specified.","",),"DayScheduleNames"))
        self.InsertField(FieldChoice(self,"Solar Model Indicator","ASHRAEClearSky","",["ASHRAEClearSky","ZhangHuang","Schedule",]))
        self.InsertField(FieldObjectlist(self,"Beam Solar Day Schedule Name","",("if Solar Model Indicator = Schedule, then beam schedule name (for day)","",),"DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Diffuse Solar Day Schedule Name","",("if Solar Model Indicator = Schedule, then diffuse schedule name (for day)","",),"DayScheduleNames"))


        self.addReference("DesignDays")
        self.setRequired(False)
        self.setMinfields(15)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("SizingPeriod:DesignDay")





class SizingPeriod_WeatherFileDays(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("user supplied name for reporting","",)))
        self.InsertField(FieldInt(self,"Begin Month",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Begin Day of Month",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day of Month",0,"",1,31,"",""))
        self.InsertField(FieldChoice(self,"Day of Week for Start Day","Monday",(" =[|Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|SummerDesignDay|WinterDesignDay|","   |CustomDay1|CustomDay2];","if you use SummerDesignDay or WinterDesignDay or the CustomDays then this will apply","to the whole period; other days (i.e., Monday) will signify a start day and","normal sequence ofsubsequent days","",),["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","SummerDesignDay","WinterDesignDay","CustomDay1","CustomDay2",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Daylight Saving Period","Yes",("If yes or blank, use daylight saving period as specified on Weatherfile.","If no, do not use the daylight saving period as specified on the Weatherfile.","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Rain and Snow Indicators","Yes","",["Yes","No",]))


        self.insertMemo(("Use a weather file period for design sizing calculations.",))
        self.addReference("DesignDays")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("SizingPeriod:WeatherFileDays")





class SizingPeriod_WeatherFileConditionType(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("user supplied name for reporting","",)))
        self.InsertField(FieldChoice(self,"Period Selection","",("Following is a list of all possible types of Extreme and Typical periods that","might be identified in the Weather File. Not all possible types are available","for all weather files.","",),["SummerExtreme","SummerTypical","WinterExtreme","WinterTypical","AutumnTypical","SpringTypical","WetSeason","DrySeason","NoDrySeason","NoWetSeason","TropicalHot","TropicalCold",]))
        self.InsertField(FieldChoice(self,"Day of Week for Start Day","Monday",(" =[|Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|SummerDesignDay|WinterDesignDay|","   |CustomDay1|CustomDay2];","if you use SummerDesignDay or WinterDesignDay or the CustomDays then this will apply","to the whole period; other days (i.e., Monday) will signify a start day and","normal sequence ofsubsequent days","",),["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","SummerDesignDay","WinterDesignDay","CustomDay1","CustomDay2",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Daylight Saving Period","Yes",("If yes or blank, use daylight saving period as specified on Weatherfile.","If no, do not use the daylight saving period as specified on the Weatherfile.","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Rain and Snow Indicators","Yes","",["Yes","No",]))


        self.insertMemo(("Use a weather file period for design sizing calculations.","EPW weather files are created with typical and extreme periods","created heuristically from the weather file data.  For more","details on these periods, see AuxiliaryPrograms document.",))
        self.addReference("DesignDays")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("SizingPeriod:WeatherFileConditionType")





class RunPeriod(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldInt(self,"Begin Month",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Begin Day of Month",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day of Month",0,"",1,31,"",""))
        self.InsertField(FieldChoice(self,"Day of Week for Start Day","UseWeatherFile",(" =<blank - use WeatherFile>|Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday];","",),["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","UseWeatherFile",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Holidays and Special Days","Yes",("If yes or blank, use holidays as specified on Weatherfile.","If no, do not use the holidays specified on the Weatherfile.","Note: You can still specify holidays/special days using the RunPeriodControl:SpecialDays object(s).","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Daylight Saving Period","Yes",("If yes or blank, use daylight saving period as specified on Weatherfile.","If no, do not use the daylight saving period as specified on the Weatherfile.","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Apply Weekend Holiday Rule","No",("if yes and single day holiday falls on weekend, *holiday* occurs on following Monday","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Rain Indicators","Yes","",["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Use Weather File Snow Indicators","Yes","",["Yes","No",]))
        self.InsertField(FieldInt(self,"Number of Times Runperiod to be Repeated","1","",1,"","",""))


        self.setRequired(False)
        self.setMinfields(10)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("RunPeriod")





class RunPeriodControl_SpecialDays(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Start Date","",(" Dates can be several formats:"," <number>/<number>  (month/day)"," <number> <Month>"," <Month> <number>","<Nth> <Weekday> in <Month)","Last <WeekDay> in <Month>","<Month> can be January, February, March, April, May, June, July, August, September, October, November, December","Months can be the first 3 letters of the month","<Weekday> can be Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday","<Nth> can be 1 or 1st, 2 or 2nd, etc. up to 5(?)","",)))
        self.InsertField(FieldReal(self,"Duration","1","",1,366,"",""))
        self.InsertField(FieldChoice(self,"Special Day Type","Holiday",("Special Day Type selects the schedules appropriate for each day so labeled","",),["Holiday","SummerDesignDay","WinterDesignDay","CustomDay1","CustomDay2",]))


        self.insertMemo(("This object sets up holidays/special days to be used during weather file","run periods.  (These are not used with SizingPeriod:* objects.)","Depending on the value in the run period, days on the weather file may also","be used.  However, the weather file specification will take precedence over","any specification shown here.  (No error message on duplicate days or overlapping","days).",))
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("RunPeriodControl:SpecialDays")





class RunPeriodControl_DaylightSavingTime(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Start Date","",""))
        self.InsertField(FieldText(self,"End Date","",(" Dates can be several formats:"," <number>/<number>  (month/day)"," <number> <Month>"," <Month> <number>","<Nth> <Weekday> in <Month)","Last <WeekDay> in <Month>","<Month> can be January, February, March, April, May, June, July, August, September, October, November, December","Months can be the first 3 letters of the month","<Weekday> can be Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday","<Nth> can be 1 or 1st, 2 or 2nd, etc. up to 5(?)","",)))


        self.insertMemo(("This object sets up the daylight saving time period for any RunPeriod.","Ignores any daylight saving time period on the weather file and uses this definition.","These are not used with SizingPeriod:DesignDay objects.","Use with SizingPeriod:WeatherFileDays object can be controlled in that object.",))
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("RunPeriodControl:DaylightSavingTime")





class Site_WeatherStation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Wind Sensor Height Above Ground","10.0","","","",0.0,""))
        self.InsertField(FieldReal(self,"Wind Speed Profile Exponent","0.14","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Wind Speed Profile Boundary Layer Thickness","270.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Air Temperature Sensor Height Above Ground","1.5","",0.0,"","",""))


        self.insertMemo(("This object is only used for non-standard weather data.  Standard weather data","such as TMY2, IWEC, and ASHRAE design day data are all measured at the","default conditions and do not require this object to be used.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:WeatherStation")





class Site_HeightVariation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Wind Speed Profile Exponent","0.22",("Set to zero for no wind speed dependence on height.","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Wind Speed Profile Boundary Layer Thickness","370.0","","","",0.0,""))
        self.InsertField(FieldReal(self,"Air Temperature Gradient Coefficient","0.0065",("Set to zero for no air temperature dependence on height.","Units: K/m",),0.0,"","",""))


        self.insertMemo(("This object is used if the user requires advanced control over height-dependent","variations in wind speed and temperature.  When this object is not present, the default model","for temperature dependence on height is used, and the wind speed is modeled according","to the Terrain field of the BUILDING object.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:HeightVariation")





class Site_GroundTemperature_BuildingSurface(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"January Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"February Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"March Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"April Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"May Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"June Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"July Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"August Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"September Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"October Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"November Ground Temperature","18","","","","",""))
        self.InsertField(FieldReal(self,"December Ground Temperature","18","","","","",""))


        self.insertMemo(("These temperatures are specifically for those surfaces that have the outside environment","of *Ground*.  Documentation about what values these should be is located in the","Auxiliary programs document (Ground Heat Transfer) as well as the InputOutput Reference.","CAUTION - Do not use the *undisturbed* ground temperatures from the weather data.","These values are too extreme for the soil under a conditioned building.","For best results, use the Slab or Basement program to calculate custom monthly","average ground temperatures (see Auxiliary Programs).  For typical commercial","buildings in the USA, a reasonable default value is 2C less than the average indoor space temperature.",))
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:GroundTemperature:BuildingSurface")





class Site_GroundTemperature_Shallow(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"January Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"February Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"March Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"April Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"May Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"June Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"July Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"August Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"September Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"October Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"November Surface Ground Temperature","13","","","","",""))
        self.InsertField(FieldReal(self,"December Surface Ground Temperature","13","","","","",""))


        self.insertMemo(("These temperatures are specifically for the Surface Ground Heat Exchanger and","should probably be close to the average outdoor air temperature for the location.",))
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:GroundTemperature:Shallow")





class Site_GroundTemperature_Deep(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"January Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"February Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"March Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"April Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"May Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"June Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"July Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"August Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"September Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"October Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"November Deep Ground Temperature","16","","","","",""))
        self.InsertField(FieldReal(self,"December Deep Ground Temperature","16","","","","",""))


        self.insertMemo(("These temperatures are specifically for the ground heat exchangers that would use","*deep* (3-4 m depth) ground temperatures for their heat source.",))
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:GroundTemperature:Deep")





class Site_GroundReflectance(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"January Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"February Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"March Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"April Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"May Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"June Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"July Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"August Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"September Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"October Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"November Ground Reflectance","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"December Ground Reflectance","0.2","",0.0,1.0,"",""))


        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:GroundReflectance")





class Site_GroundReflectance_SnowModifier(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Ground Reflected Solar Modifier","1.0",("Value for modifying the *normal* ground reflectance when Snow is on ground"," when calculating the *Ground Reflected Solar Radiation Value*"," a value of 1.0 here uses the *normal* ground reflectance"," Ground Reflected Solar = (BeamSolar*CosSunZenith + DiffuseSolar)*GroundReflectance","   This would be further modified by the Snow Ground Reflectance Modifier when Snow was on the ground","   When Snow on ground, effective GroundReflectance is normal GroundReflectance**Ground Reflectance Snow Modifier*"," Ground Reflectance achieved in this manner will be restricted to [0.0,1.0]","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Daylighting Ground Reflected Solar Modifier","1.0",("Value for modifying the *normal* daylighting ground reflectance when Snow is on ground"," when calculating the *Ground Reflected Solar Radiation Value*"," a value of 1.0 here uses the *normal* ground reflectance"," Ground Reflected Solar = (BeamSolar*CosSunZenith + DiffuseSolar)*GroundReflectance","   This would be further modified by the Snow Ground Reflectance Modifier when Snow was on the ground","   When Snow on ground, effective GroundReflectance is normal GroundReflectance**Daylighting Ground Reflectance Snow Modifier*"," Ground Reflectance achieved in this manner will be restricted to [0.0,1.0]","",),0.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:GroundReflectance:SnowModifier")





class Site_WaterMainsTemperature(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Calculation Method","","",["Schedule","Correlation",]))
        self.InsertField(FieldObjectlist(self,"Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Annual Average Outdoor Air Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Difference In Monthly Average Outdoor Air Temperatures",0,"",0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Location and Climate") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:WaterMainsTemperature")





class Site_Precipitation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Precipitation Model Type","","",["ScheduleAndDesignLevel",]))
        self.InsertField(FieldReal(self,"Design Level for Total Annual Precipitation",0,("meters of water per year used for design level","",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Precipitation Rates Schedule Name","",("Schedule values in meters of water per hour","values should be non-negative","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Average Total Annual Precipitation",0,("meters of water per year from average weather statistics","",),0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Schedules") 
        self.setExtensible(-1)
        self.setClassnameIDD("Site:Precipitation")





class ScheduleTypeLimits(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("used to validate schedule types in various schedule objects","",)))
        self.InsertField(FieldText(self,"Range","",("put in minimum:maximum here or blank if not a limited value, e.g. 0.0:1.0 for fraction","",)))
        self.InsertField(FieldChoice(self,"Numeric Type","",("Numeric type is either Continuous (all numbers within the min and","max are valid or Discrete (only integer numbers between min and","max are valid.  (Could also allow REAL and INTEGER to mean the","same things)","",),["Continuous","Discrete",]))


        self.insertMemo(("ScheduleTypeLimits specifies the data types and limits for the values contained in schedules",))
        self.addReference("ScheduleTypeLimitsNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Schedules") 
        self.setExtensible(-1)
        self.setClassnameIDD("ScheduleTypeLimits")





class Schedule_Day_Hourly(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Type Limits Name","","","ScheduleTypeLimitsNames"))
        self.InsertField(FieldReal(self,"Hour 1","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 2","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 3","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 4","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 5","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 6","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 7","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 8","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 9","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 10","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 11","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 12","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 13","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 14","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 15","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 16","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 17","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 18","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 19","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 20","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 21","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 22","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 23","0","","","","",""))
        self.InsertField(FieldReal(self,"Hour 24","0","","","","",""))


        self.insertMemo(("A Schedule:Day:Hourly contains 24 values for each hour of the day.",))
        self.addReference("DayScheduleNames")
        self.setRequired(False)
        self.setMinfields(26)
        self.setGroup("Schedules") 
        self.setExtensible(-1)
        self.setClassnameIDD("Schedule:Day:Hourly")





class Schedule_Day_Interval(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Type Limits Name","","","ScheduleTypeLimitsNames"))
        self.InsertField(FieldYesNo(self,"Interpolate to Timestep","No",("when the interval does not match the user specified timestep a Yes choice will average between the intervals request (to","timestep resolution.  a No choice will use the interval value at the simulation timestep without regard to if it matches","the boundary or not.","",),["Yes","No",]))
        self.InsertField(FieldTime(self,"Time 1","",("*until* includes the time entered.","Units: hh:mm",)))
        self.InsertField(FieldReal(self,"Value Until Time 1",0,"","","","",""))


        self.insertMemo(("A Schedule:Day:Interval contains a full day of values with specified end times for each value","Currently, is set up to allow for 10 minute intervals for an entire day.",))
        self.addReference("DayScheduleNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Schedules") 
        self.setExtensible(2)
        self.setClassnameIDD("Schedule:Day:Interval")





class Schedule_Day_List(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Type Limits Name","","","ScheduleTypeLimitsNames"))
        self.InsertField(FieldYesNo(self,"Interpolate to Timestep","No",("when the interval does not match the user specified timestep a *Yes* choice will average between the intervals request (to","timestep resolution.  a *No* choice will use the interval value at the simulation timestep without regard to if it matches","the boundary or not.","",),["Yes","No",]))
        self.InsertField(FieldInt(self,"Minutes per Item",0,("Must be evenly divisible into 60","",),1,60,"",""))
        self.InsertField(FieldReal(self,"N3",0,"","","","",""))
        self.InsertField(FieldReal(self,"N4",0,"","","","",""))
        self.InsertField(FieldReal(self,"N5",0,"","","","",""))
        self.InsertField(FieldReal(self,"N6",0,"","","","",""))
        self.InsertField(FieldReal(self,"N7",0,"","","","",""))
        self.InsertField(FieldReal(self,"N8",0,"","","","",""))
        self.InsertField(FieldReal(self,"N9",0,"","","","",""))
        self.InsertField(FieldReal(self,"N10",0,"","","","",""))
        self.InsertField(FieldReal(self,"N11",0,"","","","",""))
        self.InsertField(FieldReal(self,"N12",0,"","","","",""))
        self.InsertField(FieldReal(self,"N13",0,"","","","",""))
        self.InsertField(FieldReal(self,"N14",0,"","","","",""))
        self.InsertField(FieldReal(self,"N15",0,"","","","",""))
        self.InsertField(FieldReal(self,"N16",0,"","","","",""))
        self.InsertField(FieldReal(self,"N17",0,"","","","",""))
        self.InsertField(FieldReal(self,"N18",0,"","","","",""))
        self.InsertField(FieldReal(self,"N19",0,"","","","",""))
        self.InsertField(FieldReal(self,"N20",0,"","","","",""))
        self.InsertField(FieldReal(self,"N21",0,"","","","",""))
        self.InsertField(FieldReal(self,"N22",0,"","","","",""))
        self.InsertField(FieldReal(self,"N23",0,"","","","",""))
        self.InsertField(FieldReal(self,"N24",0,"","","","",""))
        self.InsertField(FieldReal(self,"N25",0,"","","","",""))
        self.InsertField(FieldReal(self,"N26",0,"","","","",""))
        self.InsertField(FieldReal(self,"N27",0,"","","","",""))
        self.InsertField(FieldReal(self,"N28",0,"","","","",""))
        self.InsertField(FieldReal(self,"N29",0,"","","","",""))
        self.InsertField(FieldReal(self,"N30",0,"","","","",""))
        self.InsertField(FieldReal(self,"N31",0,"","","","",""))
        self.InsertField(FieldReal(self,"N32",0,"","","","",""))
        self.InsertField(FieldReal(self,"N33",0,"","","","",""))
        self.InsertField(FieldReal(self,"N34",0,"","","","",""))
        self.InsertField(FieldReal(self,"N35",0,"","","","",""))
        self.InsertField(FieldReal(self,"N36",0,"","","","",""))
        self.InsertField(FieldReal(self,"N37",0,"","","","",""))
        self.InsertField(FieldReal(self,"N38",0,"","","","",""))
        self.InsertField(FieldReal(self,"N39",0,"","","","",""))
        self.InsertField(FieldReal(self,"N40",0,"","","","",""))
        self.InsertField(FieldReal(self,"N41",0,"","","","",""))
        self.InsertField(FieldReal(self,"N42",0,"","","","",""))
        self.InsertField(FieldReal(self,"N43",0,"","","","",""))
        self.InsertField(FieldReal(self,"N44",0,"","","","",""))
        self.InsertField(FieldReal(self,"N45",0,"","","","",""))
        self.InsertField(FieldReal(self,"N46",0,"","","","",""))
        self.InsertField(FieldReal(self,"N47",0,"","","","",""))
        self.InsertField(FieldReal(self,"N48",0,"","","","",""))
        self.InsertField(FieldReal(self,"N49",0,"","","","",""))
        self.InsertField(FieldReal(self,"N50",0,"","","","",""))
        self.InsertField(FieldReal(self,"N51",0,"","","","",""))
        self.InsertField(FieldReal(self,"N52",0,"","","","",""))
        self.InsertField(FieldReal(self,"N53",0,"","","","",""))
        self.InsertField(FieldReal(self,"N54",0,"","","","",""))
        self.InsertField(FieldReal(self,"N55",0,"","","","",""))
        self.InsertField(FieldReal(self,"N56",0,"","","","",""))
        self.InsertField(FieldReal(self,"N57",0,"","","","",""))
        self.InsertField(FieldReal(self,"N58",0,"","","","",""))
        self.InsertField(FieldReal(self,"N59",0,"","","","",""))
        self.InsertField(FieldReal(self,"N60",0,"","","","",""))
        self.InsertField(FieldReal(self,"N61",0,"","","","",""))
        self.InsertField(FieldReal(self,"N62",0,"","","","",""))
        self.InsertField(FieldReal(self,"N63",0,"","","","",""))
        self.InsertField(FieldReal(self,"N64",0,"","","","",""))
        self.InsertField(FieldReal(self,"N65",0,"","","","",""))
        self.InsertField(FieldReal(self,"N66",0,"","","","",""))
        self.InsertField(FieldReal(self,"N67",0,"","","","",""))
        self.InsertField(FieldReal(self,"N68",0,"","","","",""))
        self.InsertField(FieldReal(self,"N69",0,"","","","",""))
        self.InsertField(FieldReal(self,"N70",0,"","","","",""))
        self.InsertField(FieldReal(self,"N71",0,"","","","",""))
        self.InsertField(FieldReal(self,"N72",0,"","","","",""))
        self.InsertField(FieldReal(self,"N73",0,"","","","",""))
        self.InsertField(FieldReal(self,"N74",0,"","","","",""))
        self.InsertField(FieldReal(self,"N75",0,"","","","",""))
        self.InsertField(FieldReal(self,"N76",0,"","","","",""))
        self.InsertField(FieldReal(self,"N77",0,"","","","",""))
        self.InsertField(FieldReal(self,"N78",0,"","","","",""))
        self.InsertField(FieldReal(self,"N79",0,"","","","",""))
        self.InsertField(FieldReal(self,"N80",0,"","","","",""))
        self.InsertField(FieldReal(self,"N81",0,"","","","",""))
        self.InsertField(FieldReal(self,"N82",0,"","","","",""))
        self.InsertField(FieldReal(self,"N83",0,"","","","",""))
        self.InsertField(FieldReal(self,"N84",0,"","","","",""))
        self.InsertField(FieldReal(self,"N85",0,"","","","",""))
        self.InsertField(FieldReal(self,"N86",0,"","","","",""))
        self.InsertField(FieldReal(self,"N87",0,"","","","",""))
        self.InsertField(FieldReal(self,"N88",0,"","","","",""))
        self.InsertField(FieldReal(self,"N89",0,"","","","",""))
        self.InsertField(FieldReal(self,"N90",0,"","","","",""))
        self.InsertField(FieldReal(self,"N91",0,"","","","",""))
        self.InsertField(FieldReal(self,"N92",0,"","","","",""))
        self.InsertField(FieldReal(self,"N93",0,"","","","",""))
        self.InsertField(FieldReal(self,"N94",0,"","","","",""))
        self.InsertField(FieldReal(self,"N95",0,"","","","",""))
        self.InsertField(FieldReal(self,"N96",0,"","","","",""))
        self.InsertField(FieldReal(self,"N97",0,"","","","",""))
        self.InsertField(FieldReal(self,"N98",0,"","","","",""))
        self.InsertField(FieldReal(self,"N99",0,"","","","",""))
        self.InsertField(FieldReal(self,"N100",0,"","","","",""))
        self.InsertField(FieldReal(self,"N101",0,"","","","",""))
        self.InsertField(FieldReal(self,"N102",0,"","","","",""))
        self.InsertField(FieldReal(self,"N103",0,"","","","",""))
        self.InsertField(FieldReal(self,"N104",0,"","","","",""))
        self.InsertField(FieldReal(self,"N105",0,"","","","",""))
        self.InsertField(FieldReal(self,"N106",0,"","","","",""))
        self.InsertField(FieldReal(self,"N107",0,"","","","",""))
        self.InsertField(FieldReal(self,"N108",0,"","","","",""))
        self.InsertField(FieldReal(self,"N109",0,"","","","",""))
        self.InsertField(FieldReal(self,"N110",0,"","","","",""))
        self.InsertField(FieldReal(self,"N111",0,"","","","",""))
        self.InsertField(FieldReal(self,"N112",0,"","","","",""))
        self.InsertField(FieldReal(self,"N113",0,"","","","",""))
        self.InsertField(FieldReal(self,"N114",0,"","","","",""))
        self.InsertField(FieldReal(self,"N115",0,"","","","",""))
        self.InsertField(FieldReal(self,"N116",0,"","","","",""))
        self.InsertField(FieldReal(self,"N117",0,"","","","",""))
        self.InsertField(FieldReal(self,"N118",0,"","","","",""))
        self.InsertField(FieldReal(self,"N119",0,"","","","",""))
        self.InsertField(FieldReal(self,"N120",0,"","","","",""))
        self.InsertField(FieldReal(self,"N121",0,"","","","",""))
        self.InsertField(FieldReal(self,"N122",0,"","","","",""))
        self.InsertField(FieldReal(self,"N123",0,"","","","",""))
        self.InsertField(FieldReal(self,"N124",0,"","","","",""))
        self.InsertField(FieldReal(self,"N125",0,"","","","",""))
        self.InsertField(FieldReal(self,"N126",0,"","","","",""))
        self.InsertField(FieldReal(self,"N127",0,"","","","",""))
        self.InsertField(FieldReal(self,"N128",0,"","","","",""))
        self.InsertField(FieldReal(self,"N129",0,"","","","",""))
        self.InsertField(FieldReal(self,"N130",0,"","","","",""))
        self.InsertField(FieldReal(self,"N131",0,"","","","",""))
        self.InsertField(FieldReal(self,"N132",0,"","","","",""))
        self.InsertField(FieldReal(self,"N133",0,"","","","",""))
        self.InsertField(FieldReal(self,"N134",0,"","","","",""))
        self.InsertField(FieldReal(self,"N135",0,"","","","",""))
        self.InsertField(FieldReal(self,"N136",0,"","","","",""))
        self.InsertField(FieldReal(self,"N137",0,"","","","",""))
        self.InsertField(FieldReal(self,"N138",0,"","","","",""))
        self.InsertField(FieldReal(self,"N139",0,"","","","",""))
        self.InsertField(FieldReal(self,"N140",0,"","","","",""))
        self.InsertField(FieldReal(self,"N141",0,"","","","",""))
        self.InsertField(FieldReal(self,"N142",0,"","","","",""))
        self.InsertField(FieldReal(self,"N143",0,"","","","",""))
        self.InsertField(FieldReal(self,"N144",0,"","","","",""))
        self.InsertField(FieldReal(self,"N145",0,"","","","",""))
        self.InsertField(FieldReal(self,"N146",0,"","","","",""))
        self.InsertField(FieldReal(self,"N147",0,"","","","",""))
        self.InsertField(FieldReal(self,"N148",0,"","","","",""))
        self.InsertField(FieldReal(self,"N149",0,"","","","",""))
        self.InsertField(FieldReal(self,"N150",0,"","","","",""))
        self.InsertField(FieldReal(self,"N151",0,"","","","",""))
        self.InsertField(FieldReal(self,"N152",0,"","","","",""))
        self.InsertField(FieldReal(self,"N153",0,"","","","",""))
        self.InsertField(FieldReal(self,"N154",0,"","","","",""))
        self.InsertField(FieldReal(self,"N155",0,"","","","",""))
        self.InsertField(FieldReal(self,"N156",0,"","","","",""))
        self.InsertField(FieldReal(self,"N157",0,"","","","",""))
        self.InsertField(FieldReal(self,"N158",0,"","","","",""))
        self.InsertField(FieldReal(self,"N159",0,"","","","",""))
        self.InsertField(FieldReal(self,"N160",0,"","","","",""))
        self.InsertField(FieldReal(self,"N161",0,"","","","",""))
        self.InsertField(FieldReal(self,"N162",0,"","","","",""))
        self.InsertField(FieldReal(self,"N163",0,"","","","",""))
        self.InsertField(FieldReal(self,"N164",0,"","","","",""))
        self.InsertField(FieldReal(self,"N165",0,"","","","",""))
        self.InsertField(FieldReal(self,"N166",0,"","","","",""))
        self.InsertField(FieldReal(self,"N167",0,"","","","",""))
        self.InsertField(FieldReal(self,"N168",0,"","","","",""))
        self.InsertField(FieldReal(self,"N169",0,"","","","",""))
        self.InsertField(FieldReal(self,"N170",0,"","","","",""))
        self.InsertField(FieldReal(self,"N171",0,"","","","",""))
        self.InsertField(FieldReal(self,"N172",0,"","","","",""))
        self.InsertField(FieldReal(self,"N173",0,"","","","",""))
        self.InsertField(FieldReal(self,"N174",0,"","","","",""))
        self.InsertField(FieldReal(self,"N175",0,"","","","",""))
        self.InsertField(FieldReal(self,"N176",0,"","","","",""))
        self.InsertField(FieldReal(self,"N177",0,"","","","",""))
        self.InsertField(FieldReal(self,"N178",0,"","","","",""))
        self.InsertField(FieldReal(self,"N179",0,"","","","",""))
        self.InsertField(FieldReal(self,"N180",0,"","","","",""))
        self.InsertField(FieldReal(self,"N181",0,"","","","",""))
        self.InsertField(FieldReal(self,"N182",0,"","","","",""))
        self.InsertField(FieldReal(self,"N183",0,"","","","",""))
        self.InsertField(FieldReal(self,"N184",0,"","","","",""))
        self.InsertField(FieldReal(self,"N185",0,"","","","",""))
        self.InsertField(FieldReal(self,"N186",0,"","","","",""))
        self.InsertField(FieldReal(self,"N187",0,"","","","",""))
        self.InsertField(FieldReal(self,"N188",0,"","","","",""))
        self.InsertField(FieldReal(self,"N189",0,"","","","",""))
        self.InsertField(FieldReal(self,"N190",0,"","","","",""))
        self.InsertField(FieldReal(self,"N191",0,"","","","",""))
        self.InsertField(FieldReal(self,"N192",0,"","","","",""))
        self.InsertField(FieldReal(self,"N193",0,"","","","",""))
        self.InsertField(FieldReal(self,"N194",0,"","","","",""))
        self.InsertField(FieldReal(self,"N195",0,"","","","",""))
        self.InsertField(FieldReal(self,"N196",0,"","","","",""))
        self.InsertField(FieldReal(self,"N197",0,"","","","",""))
        self.InsertField(FieldReal(self,"N198",0,"","","","",""))
        self.InsertField(FieldReal(self,"N199",0,"","","","",""))
        self.InsertField(FieldReal(self,"N200",0,"","","","",""))
        self.InsertField(FieldReal(self,"N201",0,"","","","",""))
        self.InsertField(FieldReal(self,"N202",0,"","","","",""))
        self.InsertField(FieldReal(self,"N203",0,"","","","",""))
        self.InsertField(FieldReal(self,"N204",0,"","","","",""))
        self.InsertField(FieldReal(self,"N205",0,"","","","",""))
        self.InsertField(FieldReal(self,"N206",0,"","","","",""))
        self.InsertField(FieldReal(self,"N207",0,"","","","",""))
        self.InsertField(FieldReal(self,"N208",0,"","","","",""))
        self.InsertField(FieldReal(self,"N209",0,"","","","",""))
        self.InsertField(FieldReal(self,"N210",0,"","","","",""))
        self.InsertField(FieldReal(self,"N211",0,"","","","",""))
        self.InsertField(FieldReal(self,"N212",0,"","","","",""))
        self.InsertField(FieldReal(self,"N213",0,"","","","",""))
        self.InsertField(FieldReal(self,"N214",0,"","","","",""))
        self.InsertField(FieldReal(self,"N215",0,"","","","",""))
        self.InsertField(FieldReal(self,"N216",0,"","","","",""))
        self.InsertField(FieldReal(self,"N217",0,"","","","",""))
        self.InsertField(FieldReal(self,"N218",0,"","","","",""))
        self.InsertField(FieldReal(self,"N219",0,"","","","",""))
        self.InsertField(FieldReal(self,"N220",0,"","","","",""))
        self.InsertField(FieldReal(self,"N221",0,"","","","",""))
        self.InsertField(FieldReal(self,"N222",0,"","","","",""))
        self.InsertField(FieldReal(self,"N223",0,"","","","",""))
        self.InsertField(FieldReal(self,"N224",0,"","","","",""))
        self.InsertField(FieldReal(self,"N225",0,"","","","",""))
        self.InsertField(FieldReal(self,"N226",0,"","","","",""))
        self.InsertField(FieldReal(self,"N227",0,"","","","",""))
        self.InsertField(FieldReal(self,"N228",0,"","","","",""))
        self.InsertField(FieldReal(self,"N229",0,"","","","",""))
        self.InsertField(FieldReal(self,"N230",0,"","","","",""))
        self.InsertField(FieldReal(self,"N231",0,"","","","",""))
        self.InsertField(FieldReal(self,"N232",0,"","","","",""))
        self.InsertField(FieldReal(self,"N233",0,"","","","",""))
        self.InsertField(FieldReal(self,"N234",0,"","","","",""))
        self.InsertField(FieldReal(self,"N235",0,"","","","",""))
        self.InsertField(FieldReal(self,"N236",0,"","","","",""))
        self.InsertField(FieldReal(self,"N237",0,"","","","",""))
        self.InsertField(FieldReal(self,"N238",0,"","","","",""))
        self.InsertField(FieldReal(self,"N239",0,"","","","",""))
        self.InsertField(FieldReal(self,"N240",0,"","","","",""))
        self.InsertField(FieldReal(self,"N241",0,"","","","",""))
        self.InsertField(FieldReal(self,"N242",0,"","","","",""))
        self.InsertField(FieldReal(self,"N243",0,"","","","",""))
        self.InsertField(FieldReal(self,"N244",0,"","","","",""))
        self.InsertField(FieldReal(self,"N245",0,"","","","",""))
        self.InsertField(FieldReal(self,"N246",0,"","","","",""))
        self.InsertField(FieldReal(self,"N247",0,"","","","",""))
        self.InsertField(FieldReal(self,"N248",0,"","","","",""))
        self.InsertField(FieldReal(self,"N249",0,"","","","",""))
        self.InsertField(FieldReal(self,"N250",0,"","","","",""))
        self.InsertField(FieldReal(self,"N251",0,"","","","",""))
        self.InsertField(FieldReal(self,"N252",0,"","","","",""))
        self.InsertField(FieldReal(self,"N253",0,"","","","",""))
        self.InsertField(FieldReal(self,"N254",0,"","","","",""))
        self.InsertField(FieldReal(self,"N255",0,"","","","",""))
        self.InsertField(FieldReal(self,"N256",0,"","","","",""))
        self.InsertField(FieldReal(self,"N257",0,"","","","",""))
        self.InsertField(FieldReal(self,"N258",0,"","","","",""))
        self.InsertField(FieldReal(self,"N259",0,"","","","",""))
        self.InsertField(FieldReal(self,"N260",0,"","","","",""))
        self.InsertField(FieldReal(self,"N261",0,"","","","",""))
        self.InsertField(FieldReal(self,"N262",0,"","","","",""))
        self.InsertField(FieldReal(self,"N263",0,"","","","",""))
        self.InsertField(FieldReal(self,"N264",0,"","","","",""))
        self.InsertField(FieldReal(self,"N265",0,"","","","",""))
        self.InsertField(FieldReal(self,"N266",0,"","","","",""))
        self.InsertField(FieldReal(self,"N267",0,"","","","",""))
        self.InsertField(FieldReal(self,"N268",0,"","","","",""))
        self.InsertField(FieldReal(self,"N269",0,"","","","",""))
        self.InsertField(FieldReal(self,"N270",0,"","","","",""))
        self.InsertField(FieldReal(self,"N271",0,"","","","",""))
        self.InsertField(FieldReal(self,"N272",0,"","","","",""))
        self.InsertField(FieldReal(self,"N273",0,"","","","",""))
        self.InsertField(FieldReal(self,"N274",0,"","","","",""))
        self.InsertField(FieldReal(self,"N275",0,"","","","",""))
        self.InsertField(FieldReal(self,"N276",0,"","","","",""))
        self.InsertField(FieldReal(self,"N277",0,"","","","",""))
        self.InsertField(FieldReal(self,"N278",0,"","","","",""))
        self.InsertField(FieldReal(self,"N279",0,"","","","",""))
        self.InsertField(FieldReal(self,"N280",0,"","","","",""))
        self.InsertField(FieldReal(self,"N281",0,"","","","",""))
        self.InsertField(FieldReal(self,"N282",0,"","","","",""))
        self.InsertField(FieldReal(self,"N283",0,"","","","",""))
        self.InsertField(FieldReal(self,"N284",0,"","","","",""))
        self.InsertField(FieldReal(self,"N285",0,"","","","",""))
        self.InsertField(FieldReal(self,"N286",0,"","","","",""))
        self.InsertField(FieldReal(self,"N287",0,"","","","",""))
        self.InsertField(FieldReal(self,"N288",0,"","","","",""))
        self.InsertField(FieldReal(self,"N289",0,"","","","",""))
        self.InsertField(FieldReal(self,"N290",0,"","","","",""))
        self.InsertField(FieldReal(self,"N291",0,"","","","",""))
        self.InsertField(FieldReal(self,"N292",0,"","","","",""))
        self.InsertField(FieldReal(self,"N293",0,"","","","",""))
        self.InsertField(FieldReal(self,"N294",0,"","","","",""))
        self.InsertField(FieldReal(self,"N295",0,"","","","",""))
        self.InsertField(FieldReal(self,"N296",0,"","","","",""))
        self.InsertField(FieldReal(self,"N297",0,"","","","",""))
        self.InsertField(FieldReal(self,"N298",0,"","","","",""))
        self.InsertField(FieldReal(self,"N299",0,"","","","",""))
        self.InsertField(FieldReal(self,"N300",0,"","","","",""))
        self.InsertField(FieldReal(self,"N301",0,"","","","",""))
        self.InsertField(FieldReal(self,"N302",0,"","","","",""))
        self.InsertField(FieldReal(self,"N303",0,"","","","",""))
        self.InsertField(FieldReal(self,"N304",0,"","","","",""))
        self.InsertField(FieldReal(self,"N305",0,"","","","",""))
        self.InsertField(FieldReal(self,"N306",0,"","","","",""))
        self.InsertField(FieldReal(self,"N307",0,"","","","",""))
        self.InsertField(FieldReal(self,"N308",0,"","","","",""))
        self.InsertField(FieldReal(self,"N309",0,"","","","",""))
        self.InsertField(FieldReal(self,"N310",0,"","","","",""))
        self.InsertField(FieldReal(self,"N311",0,"","","","",""))
        self.InsertField(FieldReal(self,"N312",0,"","","","",""))
        self.InsertField(FieldReal(self,"N313",0,"","","","",""))
        self.InsertField(FieldReal(self,"N314",0,"","","","",""))
        self.InsertField(FieldReal(self,"N315",0,"","","","",""))
        self.InsertField(FieldReal(self,"N316",0,"","","","",""))
        self.InsertField(FieldReal(self,"N317",0,"","","","",""))
        self.InsertField(FieldReal(self,"N318",0,"","","","",""))
        self.InsertField(FieldReal(self,"N319",0,"","","","",""))
        self.InsertField(FieldReal(self,"N320",0,"","","","",""))
        self.InsertField(FieldReal(self,"N321",0,"","","","",""))
        self.InsertField(FieldReal(self,"N322",0,"","","","",""))
        self.InsertField(FieldReal(self,"N323",0,"","","","",""))
        self.InsertField(FieldReal(self,"N324",0,"","","","",""))
        self.InsertField(FieldReal(self,"N325",0,"","","","",""))
        self.InsertField(FieldReal(self,"N326",0,"","","","",""))
        self.InsertField(FieldReal(self,"N327",0,"","","","",""))
        self.InsertField(FieldReal(self,"N328",0,"","","","",""))
        self.InsertField(FieldReal(self,"N329",0,"","","","",""))
        self.InsertField(FieldReal(self,"N330",0,"","","","",""))
        self.InsertField(FieldReal(self,"N331",0,"","","","",""))
        self.InsertField(FieldReal(self,"N332",0,"","","","",""))
        self.InsertField(FieldReal(self,"N333",0,"","","","",""))
        self.InsertField(FieldReal(self,"N334",0,"","","","",""))
        self.InsertField(FieldReal(self,"N335",0,"","","","",""))
        self.InsertField(FieldReal(self,"N336",0,"","","","",""))
        self.InsertField(FieldReal(self,"N337",0,"","","","",""))
        self.InsertField(FieldReal(self,"N338",0,"","","","",""))
        self.InsertField(FieldReal(self,"N339",0,"","","","",""))
        self.InsertField(FieldReal(self,"N340",0,"","","","",""))
        self.InsertField(FieldReal(self,"N341",0,"","","","",""))
        self.InsertField(FieldReal(self,"N342",0,"","","","",""))
        self.InsertField(FieldReal(self,"N343",0,"","","","",""))
        self.InsertField(FieldReal(self,"N344",0,"","","","",""))
        self.InsertField(FieldReal(self,"N345",0,"","","","",""))
        self.InsertField(FieldReal(self,"N346",0,"","","","",""))
        self.InsertField(FieldReal(self,"N347",0,"","","","",""))
        self.InsertField(FieldReal(self,"N348",0,"","","","",""))
        self.InsertField(FieldReal(self,"N349",0,"","","","",""))
        self.InsertField(FieldReal(self,"N350",0,"","","","",""))
        self.InsertField(FieldReal(self,"N351",0,"","","","",""))
        self.InsertField(FieldReal(self,"N352",0,"","","","",""))
        self.InsertField(FieldReal(self,"N353",0,"","","","",""))
        self.InsertField(FieldReal(self,"N354",0,"","","","",""))
        self.InsertField(FieldReal(self,"N355",0,"","","","",""))
        self.InsertField(FieldReal(self,"N356",0,"","","","",""))
        self.InsertField(FieldReal(self,"N357",0,"","","","",""))
        self.InsertField(FieldReal(self,"N358",0,"","","","",""))
        self.InsertField(FieldReal(self,"N359",0,"","","","",""))
        self.InsertField(FieldReal(self,"N360",0,"","","","",""))
        self.InsertField(FieldReal(self,"N361",0,"","","","",""))
        self.InsertField(FieldReal(self,"N362",0,"","","","",""))
        self.InsertField(FieldReal(self,"N363",0,"","","","",""))
        self.InsertField(FieldReal(self,"N364",0,"","","","",""))
        self.InsertField(FieldReal(self,"N365",0,"","","","",""))
        self.InsertField(FieldReal(self,"N366",0,"","","","",""))
        self.InsertField(FieldReal(self,"N367",0,"","","","",""))
        self.InsertField(FieldReal(self,"N368",0,"","","","",""))
        self.InsertField(FieldReal(self,"N369",0,"","","","",""))
        self.InsertField(FieldReal(self,"N370",0,"","","","",""))
        self.InsertField(FieldReal(self,"N371",0,"","","","",""))
        self.InsertField(FieldReal(self,"N372",0,"","","","",""))
        self.InsertField(FieldReal(self,"N373",0,"","","","",""))
        self.InsertField(FieldReal(self,"N374",0,"","","","",""))
        self.InsertField(FieldReal(self,"N375",0,"","","","",""))
        self.InsertField(FieldReal(self,"N376",0,"","","","",""))
        self.InsertField(FieldReal(self,"N377",0,"","","","",""))
        self.InsertField(FieldReal(self,"N378",0,"","","","",""))
        self.InsertField(FieldReal(self,"N379",0,"","","","",""))
        self.InsertField(FieldReal(self,"N380",0,"","","","",""))
        self.InsertField(FieldReal(self,"N381",0,"","","","",""))
        self.InsertField(FieldReal(self,"N382",0,"","","","",""))
        self.InsertField(FieldReal(self,"N383",0,"","","","",""))
        self.InsertField(FieldReal(self,"N384",0,"","","","",""))
        self.InsertField(FieldReal(self,"N385",0,"","","","",""))
        self.InsertField(FieldReal(self,"N386",0,"","","","",""))
        self.InsertField(FieldReal(self,"N387",0,"","","","",""))
        self.InsertField(FieldReal(self,"N388",0,"","","","",""))
        self.InsertField(FieldReal(self,"N389",0,"","","","",""))
        self.InsertField(FieldReal(self,"N390",0,"","","","",""))
        self.InsertField(FieldReal(self,"N391",0,"","","","",""))
        self.InsertField(FieldReal(self,"N392",0,"","","","",""))
        self.InsertField(FieldReal(self,"N393",0,"","","","",""))
        self.InsertField(FieldReal(self,"N394",0,"","","","",""))
        self.InsertField(FieldReal(self,"N395",0,"","","","",""))
        self.InsertField(FieldReal(self,"N396",0,"","","","",""))
        self.InsertField(FieldReal(self,"N397",0,"","","","",""))
        self.InsertField(FieldReal(self,"N398",0,"","","","",""))
        self.InsertField(FieldReal(self,"N399",0,"","","","",""))
        self.InsertField(FieldReal(self,"N400",0,"","","","",""))
        self.InsertField(FieldReal(self,"N401",0,"","","","",""))
        self.InsertField(FieldReal(self,"N402",0,"","","","",""))
        self.InsertField(FieldReal(self,"N403",0,"","","","",""))
        self.InsertField(FieldReal(self,"N404",0,"","","","",""))
        self.InsertField(FieldReal(self,"N405",0,"","","","",""))
        self.InsertField(FieldReal(self,"N406",0,"","","","",""))
        self.InsertField(FieldReal(self,"N407",0,"","","","",""))
        self.InsertField(FieldReal(self,"N408",0,"","","","",""))
        self.InsertField(FieldReal(self,"N409",0,"","","","",""))
        self.InsertField(FieldReal(self,"N410",0,"","","","",""))
        self.InsertField(FieldReal(self,"N411",0,"","","","",""))
        self.InsertField(FieldReal(self,"N412",0,"","","","",""))
        self.InsertField(FieldReal(self,"N413",0,"","","","",""))
        self.InsertField(FieldReal(self,"N414",0,"","","","",""))
        self.InsertField(FieldReal(self,"N415",0,"","","","",""))
        self.InsertField(FieldReal(self,"N416",0,"","","","",""))
        self.InsertField(FieldReal(self,"N417",0,"","","","",""))
        self.InsertField(FieldReal(self,"N418",0,"","","","",""))
        self.InsertField(FieldReal(self,"N419",0,"","","","",""))
        self.InsertField(FieldReal(self,"N420",0,"","","","",""))
        self.InsertField(FieldReal(self,"N421",0,"","","","",""))
        self.InsertField(FieldReal(self,"N422",0,"","","","",""))
        self.InsertField(FieldReal(self,"N423",0,"","","","",""))
        self.InsertField(FieldReal(self,"N424",0,"","","","",""))
        self.InsertField(FieldReal(self,"N425",0,"","","","",""))
        self.InsertField(FieldReal(self,"N426",0,"","","","",""))
        self.InsertField(FieldReal(self,"N427",0,"","","","",""))
        self.InsertField(FieldReal(self,"N428",0,"","","","",""))
        self.InsertField(FieldReal(self,"N429",0,"","","","",""))
        self.InsertField(FieldReal(self,"N430",0,"","","","",""))
        self.InsertField(FieldReal(self,"N431",0,"","","","",""))
        self.InsertField(FieldReal(self,"N432",0,"","","","",""))
        self.InsertField(FieldReal(self,"N433",0,"","","","",""))
        self.InsertField(FieldReal(self,"N434",0,"","","","",""))
        self.InsertField(FieldReal(self,"N435",0,"","","","",""))
        self.InsertField(FieldReal(self,"N436",0,"","","","",""))
        self.InsertField(FieldReal(self,"N437",0,"","","","",""))
        self.InsertField(FieldReal(self,"N438",0,"","","","",""))
        self.InsertField(FieldReal(self,"N439",0,"","","","",""))
        self.InsertField(FieldReal(self,"N440",0,"","","","",""))
        self.InsertField(FieldReal(self,"N441",0,"","","","",""))
        self.InsertField(FieldReal(self,"N442",0,"","","","",""))
        self.InsertField(FieldReal(self,"N443",0,"","","","",""))
        self.InsertField(FieldReal(self,"N444",0,"","","","",""))
        self.InsertField(FieldReal(self,"N445",0,"","","","",""))
        self.InsertField(FieldReal(self,"N446",0,"","","","",""))
        self.InsertField(FieldReal(self,"N447",0,"","","","",""))
        self.InsertField(FieldReal(self,"N448",0,"","","","",""))
        self.InsertField(FieldReal(self,"N449",0,"","","","",""))
        self.InsertField(FieldReal(self,"N450",0,"","","","",""))
        self.InsertField(FieldReal(self,"N451",0,"","","","",""))
        self.InsertField(FieldReal(self,"N452",0,"","","","",""))
        self.InsertField(FieldReal(self,"N453",0,"","","","",""))
        self.InsertField(FieldReal(self,"N454",0,"","","","",""))
        self.InsertField(FieldReal(self,"N455",0,"","","","",""))
        self.InsertField(FieldReal(self,"N456",0,"","","","",""))
        self.InsertField(FieldReal(self,"N457",0,"","","","",""))
        self.InsertField(FieldReal(self,"N458",0,"","","","",""))
        self.InsertField(FieldReal(self,"N459",0,"","","","",""))
        self.InsertField(FieldReal(self,"N460",0,"","","","",""))
        self.InsertField(FieldReal(self,"N461",0,"","","","",""))
        self.InsertField(FieldReal(self,"N462",0,"","","","",""))
        self.InsertField(FieldReal(self,"N463",0,"","","","",""))
        self.InsertField(FieldReal(self,"N464",0,"","","","",""))
        self.InsertField(FieldReal(self,"N465",0,"","","","",""))
        self.InsertField(FieldReal(self,"N466",0,"","","","",""))
        self.InsertField(FieldReal(self,"N467",0,"","","","",""))
        self.InsertField(FieldReal(self,"N468",0,"","","","",""))
        self.InsertField(FieldReal(self,"N469",0,"","","","",""))
        self.InsertField(FieldReal(self,"N470",0,"","","","",""))
        self.InsertField(FieldReal(self,"N471",0,"","","","",""))
        self.InsertField(FieldReal(self,"N472",0,"","","","",""))
        self.InsertField(FieldReal(self,"N473",0,"","","","",""))
        self.InsertField(FieldReal(self,"N474",0,"","","","",""))
        self.InsertField(FieldReal(self,"N475",0,"","","","",""))
        self.InsertField(FieldReal(self,"N476",0,"","","","",""))
        self.InsertField(FieldReal(self,"N477",0,"","","","",""))
        self.InsertField(FieldReal(self,"N478",0,"","","","",""))
        self.InsertField(FieldReal(self,"N479",0,"","","","",""))
        self.InsertField(FieldReal(self,"N480",0,"","","","",""))
        self.InsertField(FieldReal(self,"N481",0,"","","","",""))
        self.InsertField(FieldReal(self,"N482",0,"","","","",""))
        self.InsertField(FieldReal(self,"N483",0,"","","","",""))
        self.InsertField(FieldReal(self,"N484",0,"","","","",""))
        self.InsertField(FieldReal(self,"N485",0,"","","","",""))
        self.InsertField(FieldReal(self,"N486",0,"","","","",""))
        self.InsertField(FieldReal(self,"N487",0,"","","","",""))
        self.InsertField(FieldReal(self,"N488",0,"","","","",""))
        self.InsertField(FieldReal(self,"N489",0,"","","","",""))
        self.InsertField(FieldReal(self,"N490",0,"","","","",""))
        self.InsertField(FieldReal(self,"N491",0,"","","","",""))
        self.InsertField(FieldReal(self,"N492",0,"","","","",""))
        self.InsertField(FieldReal(self,"N493",0,"","","","",""))
        self.InsertField(FieldReal(self,"N494",0,"","","","",""))
        self.InsertField(FieldReal(self,"N495",0,"","","","",""))
        self.InsertField(FieldReal(self,"N496",0,"","","","",""))
        self.InsertField(FieldReal(self,"N497",0,"","","","",""))
        self.InsertField(FieldReal(self,"N498",0,"","","","",""))
        self.InsertField(FieldReal(self,"N499",0,"","","","",""))
        self.InsertField(FieldReal(self,"N500",0,"","","","",""))
        self.InsertField(FieldReal(self,"N501",0,"","","","",""))
        self.InsertField(FieldReal(self,"N502",0,"","","","",""))
        self.InsertField(FieldReal(self,"N503",0,"","","","",""))
        self.InsertField(FieldReal(self,"N504",0,"","","","",""))
        self.InsertField(FieldReal(self,"N505",0,"","","","",""))
        self.InsertField(FieldReal(self,"N506",0,"","","","",""))
        self.InsertField(FieldReal(self,"N507",0,"","","","",""))
        self.InsertField(FieldReal(self,"N508",0,"","","","",""))
        self.InsertField(FieldReal(self,"N509",0,"","","","",""))
        self.InsertField(FieldReal(self,"N510",0,"","","","",""))
        self.InsertField(FieldReal(self,"N511",0,"","","","",""))
        self.InsertField(FieldReal(self,"N512",0,"","","","",""))
        self.InsertField(FieldReal(self,"N513",0,"","","","",""))
        self.InsertField(FieldReal(self,"N514",0,"","","","",""))
        self.InsertField(FieldReal(self,"N515",0,"","","","",""))
        self.InsertField(FieldReal(self,"N516",0,"","","","",""))
        self.InsertField(FieldReal(self,"N517",0,"","","","",""))
        self.InsertField(FieldReal(self,"N518",0,"","","","",""))
        self.InsertField(FieldReal(self,"N519",0,"","","","",""))
        self.InsertField(FieldReal(self,"N520",0,"","","","",""))
        self.InsertField(FieldReal(self,"N521",0,"","","","",""))
        self.InsertField(FieldReal(self,"N522",0,"","","","",""))
        self.InsertField(FieldReal(self,"N523",0,"","","","",""))
        self.InsertField(FieldReal(self,"N524",0,"","","","",""))
        self.InsertField(FieldReal(self,"N525",0,"","","","",""))
        self.InsertField(FieldReal(self,"N526",0,"","","","",""))
        self.InsertField(FieldReal(self,"N527",0,"","","","",""))
        self.InsertField(FieldReal(self,"N528",0,"","","","",""))
        self.InsertField(FieldReal(self,"N529",0,"","","","",""))
        self.InsertField(FieldReal(self,"N530",0,"","","","",""))
        self.InsertField(FieldReal(self,"N531",0,"","","","",""))
        self.InsertField(FieldReal(self,"N532",0,"","","","",""))
        self.InsertField(FieldReal(self,"N533",0,"","","","",""))
        self.InsertField(FieldReal(self,"N534",0,"","","","",""))
        self.InsertField(FieldReal(self,"N535",0,"","","","",""))
        self.InsertField(FieldReal(self,"N536",0,"","","","",""))
        self.InsertField(FieldReal(self,"N537",0,"","","","",""))
        self.InsertField(FieldReal(self,"N538",0,"","","","",""))
        self.InsertField(FieldReal(self,"N539",0,"","","","",""))
        self.InsertField(FieldReal(self,"N540",0,"","","","",""))
        self.InsertField(FieldReal(self,"N541",0,"","","","",""))
        self.InsertField(FieldReal(self,"N542",0,"","","","",""))
        self.InsertField(FieldReal(self,"N543",0,"","","","",""))
        self.InsertField(FieldReal(self,"N544",0,"","","","",""))
        self.InsertField(FieldReal(self,"N545",0,"","","","",""))
        self.InsertField(FieldReal(self,"N546",0,"","","","",""))
        self.InsertField(FieldReal(self,"N547",0,"","","","",""))
        self.InsertField(FieldReal(self,"N548",0,"","","","",""))
        self.InsertField(FieldReal(self,"N549",0,"","","","",""))
        self.InsertField(FieldReal(self,"N550",0,"","","","",""))
        self.InsertField(FieldReal(self,"N551",0,"","","","",""))
        self.InsertField(FieldReal(self,"N552",0,"","","","",""))
        self.InsertField(FieldReal(self,"N553",0,"","","","",""))
        self.InsertField(FieldReal(self,"N554",0,"","","","",""))
        self.InsertField(FieldReal(self,"N555",0,"","","","",""))
        self.InsertField(FieldReal(self,"N556",0,"","","","",""))
        self.InsertField(FieldReal(self,"N557",0,"","","","",""))
        self.InsertField(FieldReal(self,"N558",0,"","","","",""))
        self.InsertField(FieldReal(self,"N559",0,"","","","",""))
        self.InsertField(FieldReal(self,"N560",0,"","","","",""))
        self.InsertField(FieldReal(self,"N561",0,"","","","",""))
        self.InsertField(FieldReal(self,"N562",0,"","","","",""))
        self.InsertField(FieldReal(self,"N563",0,"","","","",""))
        self.InsertField(FieldReal(self,"N564",0,"","","","",""))
        self.InsertField(FieldReal(self,"N565",0,"","","","",""))
        self.InsertField(FieldReal(self,"N566",0,"","","","",""))
        self.InsertField(FieldReal(self,"N567",0,"","","","",""))
        self.InsertField(FieldReal(self,"N568",0,"","","","",""))
        self.InsertField(FieldReal(self,"N569",0,"","","","",""))
        self.InsertField(FieldReal(self,"N570",0,"","","","",""))
        self.InsertField(FieldReal(self,"N571",0,"","","","",""))
        self.InsertField(FieldReal(self,"N572",0,"","","","",""))
        self.InsertField(FieldReal(self,"N573",0,"","","","",""))
        self.InsertField(FieldReal(self,"N574",0,"","","","",""))
        self.InsertField(FieldReal(self,"N575",0,"","","","",""))
        self.InsertField(FieldReal(self,"N576",0,"","","","",""))
        self.InsertField(FieldReal(self,"N577",0,"","","","",""))
        self.InsertField(FieldReal(self,"N578",0,"","","","",""))
        self.InsertField(FieldReal(self,"N579",0,"","","","",""))
        self.InsertField(FieldReal(self,"N580",0,"","","","",""))
        self.InsertField(FieldReal(self,"N581",0,"","","","",""))
        self.InsertField(FieldReal(self,"N582",0,"","","","",""))
        self.InsertField(FieldReal(self,"N583",0,"","","","",""))
        self.InsertField(FieldReal(self,"N584",0,"","","","",""))
        self.InsertField(FieldReal(self,"N585",0,"","","","",""))
        self.InsertField(FieldReal(self,"N586",0,"","","","",""))
        self.InsertField(FieldReal(self,"N587",0,"","","","",""))
        self.InsertField(FieldReal(self,"N588",0,"","","","",""))
        self.InsertField(FieldReal(self,"N589",0,"","","","",""))
        self.InsertField(FieldReal(self,"N590",0,"","","","",""))
        self.InsertField(FieldReal(self,"N591",0,"","","","",""))
        self.InsertField(FieldReal(self,"N592",0,"","","","",""))
        self.InsertField(FieldReal(self,"N593",0,"","","","",""))
        self.InsertField(FieldReal(self,"N594",0,"","","","",""))
        self.InsertField(FieldReal(self,"N595",0,"","","","",""))
        self.InsertField(FieldReal(self,"N596",0,"","","","",""))
        self.InsertField(FieldReal(self,"N597",0,"","","","",""))
        self.InsertField(FieldReal(self,"N598",0,"","","","",""))
        self.InsertField(FieldReal(self,"N599",0,"","","","",""))
        self.InsertField(FieldReal(self,"N600",0,"","","","",""))
        self.InsertField(FieldReal(self,"N601",0,"","","","",""))
        self.InsertField(FieldReal(self,"N602",0,"","","","",""))
        self.InsertField(FieldReal(self,"N603",0,"","","","",""))
        self.InsertField(FieldReal(self,"N604",0,"","","","",""))
        self.InsertField(FieldReal(self,"N605",0,"","","","",""))
        self.InsertField(FieldReal(self,"N606",0,"","","","",""))
        self.InsertField(FieldReal(self,"N607",0,"","","","",""))
        self.InsertField(FieldReal(self,"N608",0,"","","","",""))
        self.InsertField(FieldReal(self,"N609",0,"","","","",""))
        self.InsertField(FieldReal(self,"N610",0,"","","","",""))
        self.InsertField(FieldReal(self,"N611",0,"","","","",""))
        self.InsertField(FieldReal(self,"N612",0,"","","","",""))
        self.InsertField(FieldReal(self,"N613",0,"","","","",""))
        self.InsertField(FieldReal(self,"N614",0,"","","","",""))
        self.InsertField(FieldReal(self,"N615",0,"","","","",""))
        self.InsertField(FieldReal(self,"N616",0,"","","","",""))
        self.InsertField(FieldReal(self,"N617",0,"","","","",""))
        self.InsertField(FieldReal(self,"N618",0,"","","","",""))
        self.InsertField(FieldReal(self,"N619",0,"","","","",""))
        self.InsertField(FieldReal(self,"N620",0,"","","","",""))
        self.InsertField(FieldReal(self,"N621",0,"","","","",""))
        self.InsertField(FieldReal(self,"N622",0,"","","","",""))
        self.InsertField(FieldReal(self,"N623",0,"","","","",""))
        self.InsertField(FieldReal(self,"N624",0,"","","","",""))
        self.InsertField(FieldReal(self,"N625",0,"","","","",""))
        self.InsertField(FieldReal(self,"N626",0,"","","","",""))
        self.InsertField(FieldReal(self,"N627",0,"","","","",""))
        self.InsertField(FieldReal(self,"N628",0,"","","","",""))
        self.InsertField(FieldReal(self,"N629",0,"","","","",""))
        self.InsertField(FieldReal(self,"N630",0,"","","","",""))
        self.InsertField(FieldReal(self,"N631",0,"","","","",""))
        self.InsertField(FieldReal(self,"N632",0,"","","","",""))
        self.InsertField(FieldReal(self,"N633",0,"","","","",""))
        self.InsertField(FieldReal(self,"N634",0,"","","","",""))
        self.InsertField(FieldReal(self,"N635",0,"","","","",""))
        self.InsertField(FieldReal(self,"N636",0,"","","","",""))
        self.InsertField(FieldReal(self,"N637",0,"","","","",""))
        self.InsertField(FieldReal(self,"N638",0,"","","","",""))
        self.InsertField(FieldReal(self,"N639",0,"","","","",""))
        self.InsertField(FieldReal(self,"N640",0,"","","","",""))
        self.InsertField(FieldReal(self,"N641",0,"","","","",""))
        self.InsertField(FieldReal(self,"N642",0,"","","","",""))
        self.InsertField(FieldReal(self,"N643",0,"","","","",""))
        self.InsertField(FieldReal(self,"N644",0,"","","","",""))
        self.InsertField(FieldReal(self,"N645",0,"","","","",""))
        self.InsertField(FieldReal(self,"N646",0,"","","","",""))
        self.InsertField(FieldReal(self,"N647",0,"","","","",""))
        self.InsertField(FieldReal(self,"N648",0,"","","","",""))
        self.InsertField(FieldReal(self,"N649",0,"","","","",""))
        self.InsertField(FieldReal(self,"N650",0,"","","","",""))
        self.InsertField(FieldReal(self,"N651",0,"","","","",""))
        self.InsertField(FieldReal(self,"N652",0,"","","","",""))
        self.InsertField(FieldReal(self,"N653",0,"","","","",""))
        self.InsertField(FieldReal(self,"N654",0,"","","","",""))
        self.InsertField(FieldReal(self,"N655",0,"","","","",""))
        self.InsertField(FieldReal(self,"N656",0,"","","","",""))
        self.InsertField(FieldReal(self,"N657",0,"","","","",""))
        self.InsertField(FieldReal(self,"N658",0,"","","","",""))
        self.InsertField(FieldReal(self,"N659",0,"","","","",""))
        self.InsertField(FieldReal(self,"N660",0,"","","","",""))
        self.InsertField(FieldReal(self,"N661",0,"","","","",""))
        self.InsertField(FieldReal(self,"N662",0,"","","","",""))
        self.InsertField(FieldReal(self,"N663",0,"","","","",""))
        self.InsertField(FieldReal(self,"N664",0,"","","","",""))
        self.InsertField(FieldReal(self,"N665",0,"","","","",""))
        self.InsertField(FieldReal(self,"N666",0,"","","","",""))
        self.InsertField(FieldReal(self,"N667",0,"","","","",""))
        self.InsertField(FieldReal(self,"N668",0,"","","","",""))
        self.InsertField(FieldReal(self,"N669",0,"","","","",""))
        self.InsertField(FieldReal(self,"N670",0,"","","","",""))
        self.InsertField(FieldReal(self,"N671",0,"","","","",""))
        self.InsertField(FieldReal(self,"N672",0,"","","","",""))
        self.InsertField(FieldReal(self,"N673",0,"","","","",""))
        self.InsertField(FieldReal(self,"N674",0,"","","","",""))
        self.InsertField(FieldReal(self,"N675",0,"","","","",""))
        self.InsertField(FieldReal(self,"N676",0,"","","","",""))
        self.InsertField(FieldReal(self,"N677",0,"","","","",""))
        self.InsertField(FieldReal(self,"N678",0,"","","","",""))
        self.InsertField(FieldReal(self,"N679",0,"","","","",""))
        self.InsertField(FieldReal(self,"N680",0,"","","","",""))
        self.InsertField(FieldReal(self,"N681",0,"","","","",""))
        self.InsertField(FieldReal(self,"N682",0,"","","","",""))
        self.InsertField(FieldReal(self,"N683",0,"","","","",""))
        self.InsertField(FieldReal(self,"N684",0,"","","","",""))
        self.InsertField(FieldReal(self,"N685",0,"","","","",""))
        self.InsertField(FieldReal(self,"N686",0,"","","","",""))
        self.InsertField(FieldReal(self,"N687",0,"","","","",""))
        self.InsertField(FieldReal(self,"N688",0,"","","","",""))
        self.InsertField(FieldReal(self,"N689",0,"","","","",""))
        self.InsertField(FieldReal(self,"N690",0,"","","","",""))
        self.InsertField(FieldReal(self,"N691",0,"","","","",""))
        self.InsertField(FieldReal(self,"N692",0,"","","","",""))
        self.InsertField(FieldReal(self,"N693",0,"","","","",""))
        self.InsertField(FieldReal(self,"N694",0,"","","","",""))
        self.InsertField(FieldReal(self,"N695",0,"","","","",""))
        self.InsertField(FieldReal(self,"N696",0,"","","","",""))
        self.InsertField(FieldReal(self,"N697",0,"","","","",""))
        self.InsertField(FieldReal(self,"N698",0,"","","","",""))
        self.InsertField(FieldReal(self,"N699",0,"","","","",""))
        self.InsertField(FieldReal(self,"N700",0,"","","","",""))
        self.InsertField(FieldReal(self,"N701",0,"","","","",""))
        self.InsertField(FieldReal(self,"N702",0,"","","","",""))
        self.InsertField(FieldReal(self,"N703",0,"","","","",""))
        self.InsertField(FieldReal(self,"N704",0,"","","","",""))
        self.InsertField(FieldReal(self,"N705",0,"","","","",""))
        self.InsertField(FieldReal(self,"N706",0,"","","","",""))
        self.InsertField(FieldReal(self,"N707",0,"","","","",""))
        self.InsertField(FieldReal(self,"N708",0,"","","","",""))
        self.InsertField(FieldReal(self,"N709",0,"","","","",""))
        self.InsertField(FieldReal(self,"N710",0,"","","","",""))
        self.InsertField(FieldReal(self,"N711",0,"","","","",""))
        self.InsertField(FieldReal(self,"N712",0,"","","","",""))
        self.InsertField(FieldReal(self,"N713",0,"","","","",""))
        self.InsertField(FieldReal(self,"N714",0,"","","","",""))
        self.InsertField(FieldReal(self,"N715",0,"","","","",""))
        self.InsertField(FieldReal(self,"N716",0,"","","","",""))
        self.InsertField(FieldReal(self,"N717",0,"","","","",""))
        self.InsertField(FieldReal(self,"N718",0,"","","","",""))
        self.InsertField(FieldReal(self,"N719",0,"","","","",""))
        self.InsertField(FieldReal(self,"N720",0,"","","","",""))
        self.InsertField(FieldReal(self,"N721",0,"","","","",""))
        self.InsertField(FieldReal(self,"N722",0,"","","","",""))
        self.InsertField(FieldReal(self,"N723",0,"","","","",""))
        self.InsertField(FieldReal(self,"N724",0,"","","","",""))
        self.InsertField(FieldReal(self,"N725",0,"","","","",""))
        self.InsertField(FieldReal(self,"N726",0,"","","","",""))
        self.InsertField(FieldReal(self,"N727",0,"","","","",""))
        self.InsertField(FieldReal(self,"N728",0,"","","","",""))
        self.InsertField(FieldReal(self,"N729",0,"","","","",""))
        self.InsertField(FieldReal(self,"N730",0,"","","","",""))
        self.InsertField(FieldReal(self,"N731",0,"","","","",""))
        self.InsertField(FieldReal(self,"N732",0,"","","","",""))
        self.InsertField(FieldReal(self,"N733",0,"","","","",""))
        self.InsertField(FieldReal(self,"N734",0,"","","","",""))
        self.InsertField(FieldReal(self,"N735",0,"","","","",""))
        self.InsertField(FieldReal(self,"N736",0,"","","","",""))
        self.InsertField(FieldReal(self,"N737",0,"","","","",""))
        self.InsertField(FieldReal(self,"N738",0,"","","","",""))
        self.InsertField(FieldReal(self,"N739",0,"","","","",""))
        self.InsertField(FieldReal(self,"N740",0,"","","","",""))
        self.InsertField(FieldReal(self,"N741",0,"","","","",""))
        self.InsertField(FieldReal(self,"N742",0,"","","","",""))
        self.InsertField(FieldReal(self,"N743",0,"","","","",""))
        self.InsertField(FieldReal(self,"N744",0,"","","","",""))
        self.InsertField(FieldReal(self,"N745",0,"","","","",""))
        self.InsertField(FieldReal(self,"N746",0,"","","","",""))
        self.InsertField(FieldReal(self,"N747",0,"","","","",""))
        self.InsertField(FieldReal(self,"N748",0,"","","","",""))
        self.InsertField(FieldReal(self,"N749",0,"","","","",""))
        self.InsertField(FieldReal(self,"N750",0,"","","","",""))
        self.InsertField(FieldReal(self,"N751",0,"","","","",""))
        self.InsertField(FieldReal(self,"N752",0,"","","","",""))
        self.InsertField(FieldReal(self,"N753",0,"","","","",""))
        self.InsertField(FieldReal(self,"N754",0,"","","","",""))
        self.InsertField(FieldReal(self,"N755",0,"","","","",""))
        self.InsertField(FieldReal(self,"N756",0,"","","","",""))
        self.InsertField(FieldReal(self,"N757",0,"","","","",""))
        self.InsertField(FieldReal(self,"N758",0,"","","","",""))
        self.InsertField(FieldReal(self,"N759",0,"","","","",""))
        self.InsertField(FieldReal(self,"N760",0,"","","","",""))
        self.InsertField(FieldReal(self,"N761",0,"","","","",""))
        self.InsertField(FieldReal(self,"N762",0,"","","","",""))
        self.InsertField(FieldReal(self,"N763",0,"","","","",""))
        self.InsertField(FieldReal(self,"N764",0,"","","","",""))
        self.InsertField(FieldReal(self,"N765",0,"","","","",""))
        self.InsertField(FieldReal(self,"N766",0,"","","","",""))
        self.InsertField(FieldReal(self,"N767",0,"","","","",""))
        self.InsertField(FieldReal(self,"N768",0,"","","","",""))
        self.InsertField(FieldReal(self,"N769",0,"","","","",""))
        self.InsertField(FieldReal(self,"N770",0,"","","","",""))
        self.InsertField(FieldReal(self,"N771",0,"","","","",""))
        self.InsertField(FieldReal(self,"N772",0,"","","","",""))
        self.InsertField(FieldReal(self,"N773",0,"","","","",""))
        self.InsertField(FieldReal(self,"N774",0,"","","","",""))
        self.InsertField(FieldReal(self,"N775",0,"","","","",""))
        self.InsertField(FieldReal(self,"N776",0,"","","","",""))
        self.InsertField(FieldReal(self,"N777",0,"","","","",""))
        self.InsertField(FieldReal(self,"N778",0,"","","","",""))
        self.InsertField(FieldReal(self,"N779",0,"","","","",""))
        self.InsertField(FieldReal(self,"N780",0,"","","","",""))
        self.InsertField(FieldReal(self,"N781",0,"","","","",""))
        self.InsertField(FieldReal(self,"N782",0,"","","","",""))
        self.InsertField(FieldReal(self,"N783",0,"","","","",""))
        self.InsertField(FieldReal(self,"N784",0,"","","","",""))
        self.InsertField(FieldReal(self,"N785",0,"","","","",""))
        self.InsertField(FieldReal(self,"N786",0,"","","","",""))
        self.InsertField(FieldReal(self,"N787",0,"","","","",""))
        self.InsertField(FieldReal(self,"N788",0,"","","","",""))
        self.InsertField(FieldReal(self,"N789",0,"","","","",""))
        self.InsertField(FieldReal(self,"N790",0,"","","","",""))
        self.InsertField(FieldReal(self,"N791",0,"","","","",""))
        self.InsertField(FieldReal(self,"N792",0,"","","","",""))
        self.InsertField(FieldReal(self,"N793",0,"","","","",""))
        self.InsertField(FieldReal(self,"N794",0,"","","","",""))
        self.InsertField(FieldReal(self,"N795",0,"","","","",""))
        self.InsertField(FieldReal(self,"N796",0,"","","","",""))
        self.InsertField(FieldReal(self,"N797",0,"","","","",""))
        self.InsertField(FieldReal(self,"N798",0,"","","","",""))
        self.InsertField(FieldReal(self,"N799",0,"","","","",""))
        self.InsertField(FieldReal(self,"N800",0,"","","","",""))
        self.InsertField(FieldReal(self,"N801",0,"","","","",""))
        self.InsertField(FieldReal(self,"N802",0,"","","","",""))
        self.InsertField(FieldReal(self,"N803",0,"","","","",""))
        self.InsertField(FieldReal(self,"N804",0,"","","","",""))
        self.InsertField(FieldReal(self,"N805",0,"","","","",""))
        self.InsertField(FieldReal(self,"N806",0,"","","","",""))
        self.InsertField(FieldReal(self,"N807",0,"","","","",""))
        self.InsertField(FieldReal(self,"N808",0,"","","","",""))
        self.InsertField(FieldReal(self,"N809",0,"","","","",""))
        self.InsertField(FieldReal(self,"N810",0,"","","","",""))
        self.InsertField(FieldReal(self,"N811",0,"","","","",""))
        self.InsertField(FieldReal(self,"N812",0,"","","","",""))
        self.InsertField(FieldReal(self,"N813",0,"","","","",""))
        self.InsertField(FieldReal(self,"N814",0,"","","","",""))
        self.InsertField(FieldReal(self,"N815",0,"","","","",""))
        self.InsertField(FieldReal(self,"N816",0,"","","","",""))
        self.InsertField(FieldReal(self,"N817",0,"","","","",""))
        self.InsertField(FieldReal(self,"N818",0,"","","","",""))
        self.InsertField(FieldReal(self,"N819",0,"","","","",""))
        self.InsertField(FieldReal(self,"N820",0,"","","","",""))
        self.InsertField(FieldReal(self,"N821",0,"","","","",""))
        self.InsertField(FieldReal(self,"N822",0,"","","","",""))
        self.InsertField(FieldReal(self,"N823",0,"","","","",""))
        self.InsertField(FieldReal(self,"N824",0,"","","","",""))
        self.InsertField(FieldReal(self,"N825",0,"","","","",""))
        self.InsertField(FieldReal(self,"N826",0,"","","","",""))
        self.InsertField(FieldReal(self,"N827",0,"","","","",""))
        self.InsertField(FieldReal(self,"N828",0,"","","","",""))
        self.InsertField(FieldReal(self,"N829",0,"","","","",""))
        self.InsertField(FieldReal(self,"N830",0,"","","","",""))
        self.InsertField(FieldReal(self,"N831",0,"","","","",""))
        self.InsertField(FieldReal(self,"N832",0,"","","","",""))
        self.InsertField(FieldReal(self,"N833",0,"","","","",""))
        self.InsertField(FieldReal(self,"N834",0,"","","","",""))
        self.InsertField(FieldReal(self,"N835",0,"","","","",""))
        self.InsertField(FieldReal(self,"N836",0,"","","","",""))
        self.InsertField(FieldReal(self,"N837",0,"","","","",""))
        self.InsertField(FieldReal(self,"N838",0,"","","","",""))
        self.InsertField(FieldReal(self,"N839",0,"","","","",""))
        self.InsertField(FieldReal(self,"N840",0,"","","","",""))
        self.InsertField(FieldReal(self,"N841",0,"","","","",""))
        self.InsertField(FieldReal(self,"N842",0,"","","","",""))
        self.InsertField(FieldReal(self,"N843",0,"","","","",""))
        self.InsertField(FieldReal(self,"N844",0,"","","","",""))
        self.InsertField(FieldReal(self,"N845",0,"","","","",""))
        self.InsertField(FieldReal(self,"N846",0,"","","","",""))
        self.InsertField(FieldReal(self,"N847",0,"","","","",""))
        self.InsertField(FieldReal(self,"N848",0,"","","","",""))
        self.InsertField(FieldReal(self,"N849",0,"","","","",""))
        self.InsertField(FieldReal(self,"N850",0,"","","","",""))
        self.InsertField(FieldReal(self,"N851",0,"","","","",""))
        self.InsertField(FieldReal(self,"N852",0,"","","","",""))
        self.InsertField(FieldReal(self,"N853",0,"","","","",""))
        self.InsertField(FieldReal(self,"N854",0,"","","","",""))
        self.InsertField(FieldReal(self,"N855",0,"","","","",""))
        self.InsertField(FieldReal(self,"N856",0,"","","","",""))
        self.InsertField(FieldReal(self,"N857",0,"","","","",""))
        self.InsertField(FieldReal(self,"N858",0,"","","","",""))
        self.InsertField(FieldReal(self,"N859",0,"","","","",""))
        self.InsertField(FieldReal(self,"N860",0,"","","","",""))
        self.InsertField(FieldReal(self,"N861",0,"","","","",""))
        self.InsertField(FieldReal(self,"N862",0,"","","","",""))
        self.InsertField(FieldReal(self,"N863",0,"","","","",""))
        self.InsertField(FieldReal(self,"N864",0,"","","","",""))
        self.InsertField(FieldReal(self,"N865",0,"","","","",""))
        self.InsertField(FieldReal(self,"N866",0,"","","","",""))
        self.InsertField(FieldReal(self,"N867",0,"","","","",""))
        self.InsertField(FieldReal(self,"N868",0,"","","","",""))
        self.InsertField(FieldReal(self,"N869",0,"","","","",""))
        self.InsertField(FieldReal(self,"N870",0,"","","","",""))
        self.InsertField(FieldReal(self,"N871",0,"","","","",""))
        self.InsertField(FieldReal(self,"N872",0,"","","","",""))
        self.InsertField(FieldReal(self,"N873",0,"","","","",""))
        self.InsertField(FieldReal(self,"N874",0,"","","","",""))
        self.InsertField(FieldReal(self,"N875",0,"","","","",""))
        self.InsertField(FieldReal(self,"N876",0,"","","","",""))
        self.InsertField(FieldReal(self,"N877",0,"","","","",""))
        self.InsertField(FieldReal(self,"N878",0,"","","","",""))
        self.InsertField(FieldReal(self,"N879",0,"","","","",""))
        self.InsertField(FieldReal(self,"N880",0,"","","","",""))
        self.InsertField(FieldReal(self,"N881",0,"","","","",""))
        self.InsertField(FieldReal(self,"N882",0,"","","","",""))
        self.InsertField(FieldReal(self,"N883",0,"","","","",""))
        self.InsertField(FieldReal(self,"N884",0,"","","","",""))
        self.InsertField(FieldReal(self,"N885",0,"","","","",""))
        self.InsertField(FieldReal(self,"N886",0,"","","","",""))
        self.InsertField(FieldReal(self,"N887",0,"","","","",""))
        self.InsertField(FieldReal(self,"N888",0,"","","","",""))
        self.InsertField(FieldReal(self,"N889",0,"","","","",""))
        self.InsertField(FieldReal(self,"N890",0,"","","","",""))
        self.InsertField(FieldReal(self,"N891",0,"","","","",""))
        self.InsertField(FieldReal(self,"N892",0,"","","","",""))
        self.InsertField(FieldReal(self,"N893",0,"","","","",""))
        self.InsertField(FieldReal(self,"N894",0,"","","","",""))
        self.InsertField(FieldReal(self,"N895",0,"","","","",""))
        self.InsertField(FieldReal(self,"N896",0,"","","","",""))
        self.InsertField(FieldReal(self,"N897",0,"","","","",""))
        self.InsertField(FieldReal(self,"N898",0,"","","","",""))
        self.InsertField(FieldReal(self,"N899",0,"","","","",""))
        self.InsertField(FieldReal(self,"N900",0,"","","","",""))
        self.InsertField(FieldReal(self,"N901",0,"","","","",""))
        self.InsertField(FieldReal(self,"N902",0,"","","","",""))
        self.InsertField(FieldReal(self,"N903",0,"","","","",""))
        self.InsertField(FieldReal(self,"N904",0,"","","","",""))
        self.InsertField(FieldReal(self,"N905",0,"","","","",""))
        self.InsertField(FieldReal(self,"N906",0,"","","","",""))
        self.InsertField(FieldReal(self,"N907",0,"","","","",""))
        self.InsertField(FieldReal(self,"N908",0,"","","","",""))
        self.InsertField(FieldReal(self,"N909",0,"","","","",""))
        self.InsertField(FieldReal(self,"N910",0,"","","","",""))
        self.InsertField(FieldReal(self,"N911",0,"","","","",""))
        self.InsertField(FieldReal(self,"N912",0,"","","","",""))
        self.InsertField(FieldReal(self,"N913",0,"","","","",""))
        self.InsertField(FieldReal(self,"N914",0,"","","","",""))
        self.InsertField(FieldReal(self,"N915",0,"","","","",""))
        self.InsertField(FieldReal(self,"N916",0,"","","","",""))
        self.InsertField(FieldReal(self,"N917",0,"","","","",""))
        self.InsertField(FieldReal(self,"N918",0,"","","","",""))
        self.InsertField(FieldReal(self,"N919",0,"","","","",""))
        self.InsertField(FieldReal(self,"N920",0,"","","","",""))
        self.InsertField(FieldReal(self,"N921",0,"","","","",""))
        self.InsertField(FieldReal(self,"N922",0,"","","","",""))
        self.InsertField(FieldReal(self,"N923",0,"","","","",""))
        self.InsertField(FieldReal(self,"N924",0,"","","","",""))
        self.InsertField(FieldReal(self,"N925",0,"","","","",""))
        self.InsertField(FieldReal(self,"N926",0,"","","","",""))
        self.InsertField(FieldReal(self,"N927",0,"","","","",""))
        self.InsertField(FieldReal(self,"N928",0,"","","","",""))
        self.InsertField(FieldReal(self,"N929",0,"","","","",""))
        self.InsertField(FieldReal(self,"N930",0,"","","","",""))
        self.InsertField(FieldReal(self,"N931",0,"","","","",""))
        self.InsertField(FieldReal(self,"N932",0,"","","","",""))
        self.InsertField(FieldReal(self,"N933",0,"","","","",""))
        self.InsertField(FieldReal(self,"N934",0,"","","","",""))
        self.InsertField(FieldReal(self,"N935",0,"","","","",""))
        self.InsertField(FieldReal(self,"N936",0,"","","","",""))
        self.InsertField(FieldReal(self,"N937",0,"","","","",""))
        self.InsertField(FieldReal(self,"N938",0,"","","","",""))
        self.InsertField(FieldReal(self,"N939",0,"","","","",""))
        self.InsertField(FieldReal(self,"N940",0,"","","","",""))
        self.InsertField(FieldReal(self,"N941",0,"","","","",""))
        self.InsertField(FieldReal(self,"N942",0,"","","","",""))
        self.InsertField(FieldReal(self,"N943",0,"","","","",""))
        self.InsertField(FieldReal(self,"N944",0,"","","","",""))
        self.InsertField(FieldReal(self,"N945",0,"","","","",""))
        self.InsertField(FieldReal(self,"N946",0,"","","","",""))
        self.InsertField(FieldReal(self,"N947",0,"","","","",""))
        self.InsertField(FieldReal(self,"N948",0,"","","","",""))
        self.InsertField(FieldReal(self,"N949",0,"","","","",""))
        self.InsertField(FieldReal(self,"N950",0,"","","","",""))
        self.InsertField(FieldReal(self,"N951",0,"","","","",""))
        self.InsertField(FieldReal(self,"N952",0,"","","","",""))
        self.InsertField(FieldReal(self,"N953",0,"","","","",""))
        self.InsertField(FieldReal(self,"N954",0,"","","","",""))
        self.InsertField(FieldReal(self,"N955",0,"","","","",""))
        self.InsertField(FieldReal(self,"N956",0,"","","","",""))
        self.InsertField(FieldReal(self,"N957",0,"","","","",""))
        self.InsertField(FieldReal(self,"N958",0,"","","","",""))
        self.InsertField(FieldReal(self,"N959",0,"","","","",""))
        self.InsertField(FieldReal(self,"N960",0,"","","","",""))
        self.InsertField(FieldReal(self,"N961",0,"","","","",""))
        self.InsertField(FieldReal(self,"N962",0,"","","","",""))
        self.InsertField(FieldReal(self,"N963",0,"","","","",""))
        self.InsertField(FieldReal(self,"N964",0,"","","","",""))
        self.InsertField(FieldReal(self,"N965",0,"","","","",""))
        self.InsertField(FieldReal(self,"N966",0,"","","","",""))
        self.InsertField(FieldReal(self,"N967",0,"","","","",""))
        self.InsertField(FieldReal(self,"N968",0,"","","","",""))
        self.InsertField(FieldReal(self,"N969",0,"","","","",""))
        self.InsertField(FieldReal(self,"N970",0,"","","","",""))
        self.InsertField(FieldReal(self,"N971",0,"","","","",""))
        self.InsertField(FieldReal(self,"N972",0,"","","","",""))
        self.InsertField(FieldReal(self,"N973",0,"","","","",""))
        self.InsertField(FieldReal(self,"N974",0,"","","","",""))
        self.InsertField(FieldReal(self,"N975",0,"","","","",""))
        self.InsertField(FieldReal(self,"N976",0,"","","","",""))
        self.InsertField(FieldReal(self,"N977",0,"","","","",""))
        self.InsertField(FieldReal(self,"N978",0,"","","","",""))
        self.InsertField(FieldReal(self,"N979",0,"","","","",""))
        self.InsertField(FieldReal(self,"N980",0,"","","","",""))
        self.InsertField(FieldReal(self,"N981",0,"","","","",""))
        self.InsertField(FieldReal(self,"N982",0,"","","","",""))
        self.InsertField(FieldReal(self,"N983",0,"","","","",""))
        self.InsertField(FieldReal(self,"N984",0,"","","","",""))
        self.InsertField(FieldReal(self,"N985",0,"","","","",""))
        self.InsertField(FieldReal(self,"N986",0,"","","","",""))
        self.InsertField(FieldReal(self,"N987",0,"","","","",""))
        self.InsertField(FieldReal(self,"N988",0,"","","","",""))
        self.InsertField(FieldReal(self,"N989",0,"","","","",""))
        self.InsertField(FieldReal(self,"N990",0,"","","","",""))
        self.InsertField(FieldReal(self,"N991",0,"","","","",""))
        self.InsertField(FieldReal(self,"N992",0,"","","","",""))
        self.InsertField(FieldReal(self,"N993",0,"","","","",""))
        self.InsertField(FieldReal(self,"N994",0,"","","","",""))
        self.InsertField(FieldReal(self,"N995",0,"","","","",""))
        self.InsertField(FieldReal(self,"N996",0,"","","","",""))
        self.InsertField(FieldReal(self,"N997",0,"","","","",""))
        self.InsertField(FieldReal(self,"N998",0,"","","","",""))
        self.InsertField(FieldReal(self,"N999",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1000",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1001",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1002",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1003",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1004",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1005",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1006",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1007",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1008",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1009",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1010",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1011",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1012",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1013",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1014",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1015",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1016",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1017",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1018",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1019",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1020",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1021",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1022",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1023",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1024",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1025",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1026",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1027",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1028",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1029",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1030",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1031",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1032",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1033",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1034",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1035",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1036",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1037",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1038",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1039",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1040",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1041",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1042",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1043",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1044",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1045",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1046",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1047",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1048",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1049",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1050",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1051",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1052",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1053",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1054",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1055",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1056",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1057",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1058",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1059",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1060",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1061",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1062",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1063",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1064",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1065",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1066",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1067",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1068",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1069",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1070",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1071",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1072",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1073",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1074",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1075",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1076",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1077",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1078",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1079",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1080",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1081",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1082",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1083",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1084",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1085",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1086",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1087",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1088",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1089",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1090",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1091",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1092",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1093",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1094",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1095",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1096",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1097",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1098",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1099",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1100",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1101",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1102",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1103",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1104",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1105",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1106",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1107",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1108",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1109",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1110",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1111",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1112",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1113",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1114",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1115",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1116",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1117",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1118",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1119",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1120",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1121",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1122",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1123",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1124",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1125",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1126",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1127",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1128",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1129",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1130",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1131",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1132",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1133",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1134",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1135",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1136",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1137",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1138",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1139",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1140",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1141",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1142",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1143",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1144",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1145",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1146",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1147",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1148",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1149",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1150",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1151",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1152",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1153",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1154",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1155",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1156",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1157",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1158",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1159",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1160",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1161",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1162",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1163",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1164",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1165",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1166",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1167",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1168",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1169",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1170",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1171",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1172",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1173",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1174",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1175",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1176",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1177",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1178",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1179",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1180",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1181",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1182",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1183",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1184",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1185",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1186",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1187",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1188",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1189",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1190",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1191",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1192",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1193",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1194",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1195",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1196",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1197",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1198",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1199",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1200",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1201",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1202",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1203",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1204",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1205",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1206",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1207",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1208",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1209",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1210",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1211",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1212",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1213",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1214",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1215",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1216",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1217",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1218",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1219",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1220",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1221",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1222",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1223",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1224",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1225",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1226",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1227",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1228",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1229",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1230",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1231",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1232",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1233",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1234",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1235",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1236",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1237",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1238",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1239",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1240",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1241",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1242",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1243",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1244",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1245",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1246",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1247",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1248",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1249",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1250",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1251",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1252",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1253",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1254",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1255",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1256",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1257",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1258",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1259",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1260",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1261",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1262",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1263",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1264",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1265",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1266",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1267",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1268",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1269",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1270",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1271",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1272",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1273",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1274",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1275",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1276",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1277",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1278",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1279",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1280",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1281",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1282",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1283",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1284",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1285",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1286",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1287",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1288",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1289",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1290",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1291",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1292",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1293",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1294",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1295",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1296",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1297",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1298",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1299",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1300",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1301",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1302",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1303",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1304",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1305",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1306",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1307",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1308",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1309",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1310",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1311",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1312",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1313",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1314",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1315",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1316",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1317",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1318",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1319",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1320",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1321",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1322",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1323",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1324",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1325",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1326",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1327",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1328",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1329",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1330",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1331",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1332",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1333",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1334",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1335",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1336",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1337",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1338",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1339",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1340",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1341",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1342",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1343",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1344",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1345",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1346",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1347",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1348",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1349",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1350",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1351",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1352",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1353",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1354",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1355",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1356",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1357",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1358",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1359",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1360",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1361",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1362",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1363",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1364",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1365",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1366",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1367",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1368",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1369",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1370",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1371",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1372",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1373",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1374",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1375",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1376",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1377",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1378",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1379",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1380",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1381",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1382",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1383",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1384",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1385",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1386",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1387",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1388",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1389",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1390",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1391",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1392",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1393",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1394",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1395",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1396",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1397",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1398",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1399",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1400",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1401",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1402",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1403",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1404",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1405",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1406",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1407",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1408",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1409",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1410",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1411",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1412",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1413",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1414",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1415",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1416",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1417",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1418",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1419",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1420",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1421",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1422",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1423",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1424",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1425",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1426",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1427",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1428",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1429",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1430",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1431",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1432",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1433",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1434",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1435",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1436",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1437",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1438",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1439",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1440",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1440",0,"","","","",""))


        self.insertMemo(("Schedule:Day:List will allow the user to list 24 hours worth of values, which can be sub-hourly in nature.",))
        self.addReference("DayScheduleNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Schedules") 
        self.setExtensible(-1)
        self.setClassnameIDD("Schedule:Day:List")





class Schedule_Week_Daily(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Sunday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Monday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Tuesday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Wednesday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Thursday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Friday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Saturday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Holiday Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"SummerDesignDay Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"WinterDesignDay Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"CustomDay1 Schedule:Day Name","","","DayScheduleNames"))
        self.InsertField(FieldObjectlist(self,"CustomDay2 Schedule:Day Name","","","DayScheduleNames"))


        self.insertMemo((" A Schedule:Week:Daily contains 12 Schedule:Day:Hourly objects, one for each day type.",))
        self.addReference("WeekScheduleNames")
        self.setRequired(False)
        self.setMinfields(13)
        self.setGroup("Schedules") 
        self.setExtensible(-1)
        self.setClassnameIDD("Schedule:Week:Daily")





class Schedule_Week_Compact(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"DayType List 1","",("*For* is an optional prefix/start of the For fields.  Choices can be combined on single line","if sepaRated by spaces. i.e. *Holiday Weekends*","Should have a space after For, if it is included. i.e. *For Alldays*","",),["AllDays","Weekdays","Weekends","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Holiday","SummerDesignDay","WinterDesignDay","CustomDay1","CustomDay2",]))
        self.InsertField(FieldObjectlist(self,"Schedule:Day Name 1","","","DayScheduleNames"))


        self.insertMemo(("Compact definition for Schedule:Day:List",))
        self.addReference("WeekScheduleNames")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Schedules") 
        self.setExtensible(2)
        self.setClassnameIDD("Schedule:Week:Compact")





class Schedule_Year(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Type Limits Name","","","ScheduleTypeLimitsNames"))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 1","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 1",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 1",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 1",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 1",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 2","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 2",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 2",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 2",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 2",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 3","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 3",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 3",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 3",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 3",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 4","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 4",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 4",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 4",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 4",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 5","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 5",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 5",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 5",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 5",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 6","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 6",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 6",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 6",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 6",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 7","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 7",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 7",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 7",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 7",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 8","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 8",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 8",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 8",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 8",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 9","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 9",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 9",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 9",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 9",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 10","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 10",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 10",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 10",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 10",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 11","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 11",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 11",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 11",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 11",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 12","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 12",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 12",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 12",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 12",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 13","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 13",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 13",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 13",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 13",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 14","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 14",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 14",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 14",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 14",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 15","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 15",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 15",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 15",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 15",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 16","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 16",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 16",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 16",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 16",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 17","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 17",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 17",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 17",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 17",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 18","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 18",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 18",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 18",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 18",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 19","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 19",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 19",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 19",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 19",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 20","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 20",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 20",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 20",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 20",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 21","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 21",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 21",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 21",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 21",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 22","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 22",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 22",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 22",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 22",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 23","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 23",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 23",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 23",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 23",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 24","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 24",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 24",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 24",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 24",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 25","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 25",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 25",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 25",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"End Day 25",0,"",1,31,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule:Week Name 26","","","WeekScheduleNames"))
        self.InsertField(FieldInt(self,"Start Month 26",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Start Day 26",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"End Month 26",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"A29",0,("Schedule:Week for Weeks 27-53 are condensed","",),1,31,"",""))
        self.InsertField(FieldReal(self,"N105",0,"","","","",""))
        self.InsertField(FieldReal(self,"N106",0,"","","","",""))
        self.InsertField(FieldReal(self,"N107",0,"","","","",""))
        self.InsertField(FieldReal(self,"N108",0,"","","","",""))
        self.InsertField(FieldText(self,"A30","",""))
        self.InsertField(FieldReal(self,"N109",0,"","","","",""))
        self.InsertField(FieldReal(self,"N110",0,"","","","",""))
        self.InsertField(FieldReal(self,"N111",0,"","","","",""))
        self.InsertField(FieldReal(self,"N112",0,"","","","",""))
        self.InsertField(FieldText(self,"A31","",""))
        self.InsertField(FieldReal(self,"N113",0,"","","","",""))
        self.InsertField(FieldReal(self,"N114",0,"","","","",""))
        self.InsertField(FieldReal(self,"N115",0,"","","","",""))
        self.InsertField(FieldReal(self,"N116",0,"","","","",""))
        self.InsertField(FieldText(self,"A32","",""))
        self.InsertField(FieldReal(self,"N117",0,"","","","",""))
        self.InsertField(FieldReal(self,"N118",0,"","","","",""))
        self.InsertField(FieldReal(self,"N119",0,"","","","",""))
        self.InsertField(FieldReal(self,"N120",0,"","","","",""))
        self.InsertField(FieldText(self,"A33","",""))
        self.InsertField(FieldReal(self,"N121",0,"","","","",""))
        self.InsertField(FieldReal(self,"N122",0,"","","","",""))
        self.InsertField(FieldReal(self,"N123",0,"","","","",""))
        self.InsertField(FieldReal(self,"N124",0,"","","","",""))
        self.InsertField(FieldText(self,"A34","",""))
        self.InsertField(FieldReal(self,"N125",0,"","","","",""))
        self.InsertField(FieldReal(self,"N126",0,"","","","",""))
        self.InsertField(FieldReal(self,"N127",0,"","","","",""))
        self.InsertField(FieldReal(self,"N128",0,"","","","",""))
        self.InsertField(FieldText(self,"A35","",""))
        self.InsertField(FieldReal(self,"N129",0,"","","","",""))
        self.InsertField(FieldReal(self,"N130",0,"","","","",""))
        self.InsertField(FieldReal(self,"N131",0,"","","","",""))
        self.InsertField(FieldReal(self,"N132",0,"","","","",""))
        self.InsertField(FieldText(self,"A36","",""))
        self.InsertField(FieldReal(self,"N133",0,"","","","",""))
        self.InsertField(FieldReal(self,"N134",0,"","","","",""))
        self.InsertField(FieldReal(self,"N135",0,"","","","",""))
        self.InsertField(FieldReal(self,"N136",0,"","","","",""))
        self.InsertField(FieldText(self,"A37","",""))
        self.InsertField(FieldReal(self,"N137",0,"","","","",""))
        self.InsertField(FieldReal(self,"N138",0,"","","","",""))
        self.InsertField(FieldReal(self,"N139",0,"","","","",""))
        self.InsertField(FieldReal(self,"N140",0,"","","","",""))
        self.InsertField(FieldText(self,"A38","",""))
        self.InsertField(FieldReal(self,"N141",0,"","","","",""))
        self.InsertField(FieldReal(self,"N142",0,"","","","",""))
        self.InsertField(FieldReal(self,"N143",0,"","","","",""))
        self.InsertField(FieldReal(self,"N144",0,"","","","",""))
        self.InsertField(FieldText(self,"A39","",""))
        self.InsertField(FieldReal(self,"N145",0,"","","","",""))
        self.InsertField(FieldReal(self,"N146",0,"","","","",""))
        self.InsertField(FieldReal(self,"N147",0,"","","","",""))
        self.InsertField(FieldReal(self,"N148",0,"","","","",""))
        self.InsertField(FieldText(self,"A40","",""))
        self.InsertField(FieldReal(self,"N149",0,"","","","",""))
        self.InsertField(FieldReal(self,"N150",0,"","","","",""))
        self.InsertField(FieldReal(self,"N151",0,"","","","",""))
        self.InsertField(FieldReal(self,"N152",0,"","","","",""))
        self.InsertField(FieldText(self,"A41","",""))
        self.InsertField(FieldReal(self,"N153",0,"","","","",""))
        self.InsertField(FieldReal(self,"N154",0,"","","","",""))
        self.InsertField(FieldReal(self,"N155",0,"","","","",""))
        self.InsertField(FieldReal(self,"N156",0,"","","","",""))
        self.InsertField(FieldText(self,"A42","",""))
        self.InsertField(FieldReal(self,"N157",0,"","","","",""))
        self.InsertField(FieldReal(self,"N158",0,"","","","",""))
        self.InsertField(FieldReal(self,"N159",0,"","","","",""))
        self.InsertField(FieldReal(self,"N160",0,"","","","",""))
        self.InsertField(FieldText(self,"A43","",""))
        self.InsertField(FieldReal(self,"N161",0,"","","","",""))
        self.InsertField(FieldReal(self,"N162",0,"","","","",""))
        self.InsertField(FieldReal(self,"N163",0,"","","","",""))
        self.InsertField(FieldReal(self,"N164",0,"","","","",""))
        self.InsertField(FieldText(self,"A44","",""))
        self.InsertField(FieldReal(self,"N165",0,"","","","",""))
        self.InsertField(FieldReal(self,"N166",0,"","","","",""))
        self.InsertField(FieldReal(self,"N167",0,"","","","",""))
        self.InsertField(FieldReal(self,"N168",0,"","","","",""))
        self.InsertField(FieldText(self,"A45","",""))
        self.InsertField(FieldReal(self,"N169",0,"","","","",""))
        self.InsertField(FieldReal(self,"N170",0,"","","","",""))
        self.InsertField(FieldReal(self,"N171",0,"","","","",""))
        self.InsertField(FieldReal(self,"N172",0,"","","","",""))
        self.InsertField(FieldText(self,"A46","",""))
        self.InsertField(FieldReal(self,"N173",0,"","","","",""))
        self.InsertField(FieldReal(self,"N174",0,"","","","",""))
        self.InsertField(FieldReal(self,"N175",0,"","","","",""))
        self.InsertField(FieldReal(self,"N176",0,"","","","",""))
        self.InsertField(FieldText(self,"A47","",""))
        self.InsertField(FieldReal(self,"N177",0,"","","","",""))
        self.InsertField(FieldReal(self,"N178",0,"","","","",""))
        self.InsertField(FieldReal(self,"N179",0,"","","","",""))
        self.InsertField(FieldReal(self,"N180",0,"","","","",""))
        self.InsertField(FieldText(self,"A48","",""))
        self.InsertField(FieldReal(self,"N181",0,"","","","",""))
        self.InsertField(FieldReal(self,"N182",0,"","","","",""))
        self.InsertField(FieldReal(self,"N183",0,"","","","",""))
        self.InsertField(FieldReal(self,"N184",0,"","","","",""))
        self.InsertField(FieldText(self,"A49","",""))
        self.InsertField(FieldReal(self,"N185",0,"","","","",""))
        self.InsertField(FieldReal(self,"N186",0,"","","","",""))
        self.InsertField(FieldReal(self,"N187",0,"","","","",""))
        self.InsertField(FieldReal(self,"N188",0,"","","","",""))
        self.InsertField(FieldText(self,"A50","",""))
        self.InsertField(FieldReal(self,"N189",0,"","","","",""))
        self.InsertField(FieldReal(self,"N190",0,"","","","",""))
        self.InsertField(FieldReal(self,"N191",0,"","","","",""))
        self.InsertField(FieldReal(self,"N192",0,"","","","",""))
        self.InsertField(FieldText(self,"A51","",""))
        self.InsertField(FieldReal(self,"N193",0,"","","","",""))
        self.InsertField(FieldReal(self,"N194",0,"","","","",""))
        self.InsertField(FieldReal(self,"N195",0,"","","","",""))
        self.InsertField(FieldReal(self,"N196",0,"","","","",""))
        self.InsertField(FieldText(self,"A52","",""))
        self.InsertField(FieldReal(self,"N197",0,"","","","",""))
        self.InsertField(FieldReal(self,"N198",0,"","","","",""))
        self.InsertField(FieldReal(self,"N199",0,"","","","",""))
        self.InsertField(FieldReal(self,"N200",0,"","","","",""))
        self.InsertField(FieldText(self,"A53","",""))
        self.InsertField(FieldReal(self,"N201",0,"","","","",""))
        self.InsertField(FieldReal(self,"N202",0,"","","","",""))
        self.InsertField(FieldReal(self,"N203",0,"","","","",""))
        self.InsertField(FieldReal(self,"N204",0,"","","","",""))
        self.InsertField(FieldText(self,"A54","",""))
        self.InsertField(FieldReal(self,"N205",0,"","","","",""))
        self.InsertField(FieldReal(self,"N206",0,"","","","",""))
        self.InsertField(FieldReal(self,"N207",0,"","","","",""))
        self.InsertField(FieldReal(self,"N208",0,"","","","",""))
        self.InsertField(FieldText(self,"A55","",""))
        self.InsertField(FieldReal(self,"N209",0,"","","","",""))
        self.InsertField(FieldReal(self,"N210",0,"","","","",""))
        self.InsertField(FieldReal(self,"N211",0,"","","","",""))
        self.InsertField(FieldReal(self,"N212",0,"","","","",""))
        self.InsertField(FieldReal(self,"N212",0,"","","","",""))


        self.insertMemo(("A Schedule:Year contains from 1 to 52 week schedules",))
        self.addReference("ScheduleNames")
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Schedules") 
        self.setExtensible(-1)
        self.setClassnameIDD("Schedule:Year")





class Schedule_Compact(ObjectCompactSchedule):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Type Limits Name","","","ScheduleTypeLimitsNames"))
        self.InsertField(FieldText(self,"Field 1","",""))


        self.insertMemo(("Irregular object.  Does not follow the usual definition for fields.  Fields A3... are:","Through: Date","For: Applicable days (ref: Schedule:Week:Compact)","Interpolate: Yes/No (ref: Schedule:Day:Interval) -- optional, if not used will be *No*","Until: <Time> (ref: Schedule:Day:Interval)","<numeric value>","words *Through*,*For*,*Interpolate*,*Until* must be included.",))
        self.addReference("ScheduleNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Schedules") 
        self.setExtensible(1)
        self.setClassnameIDD("Schedule:Compact")





class Schedule_File(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Type Limits Name","","","ScheduleTypeLimitsNames"))
        self.InsertField(FieldText(self,"File Name","",""))
        self.InsertField(FieldInt(self,"Column Number",0,"",1,"","",""))
        self.InsertField(FieldInt(self,"Rows to Skip at Top",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Number of Hours of Data","8760",("8760 hours does not account for leap years, 8784 does.","should be either 8760 or 8784","",),8760,8784,"",""))


        self.insertMemo(("A Schedule:File points to a text computer file that has 8760-8784 hours of data.",))
        self.addReference("ScheduleNames")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Schedules") 
        self.setExtensible(-1)
        self.setClassnameIDD("Schedule:File")





class Schedule_Constant(ObjectCompactSchedule):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Type Limits Name","","","ScheduleTypeLimitsNames"))
        self.InsertField(FieldReal(self,"Hourly Value","0","","","","",""))


        self.insertMemo(("Constant hourly value for entire year.",))
        self.addReference("ScheduleNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Schedule:Constant")





class Material(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Roughness","","",["VeryRough","Rough","MediumRough","MediumSmooth","Smooth","VerySmooth",]))
        self.InsertField(FieldReal(self,"Thickness",0,"","",3.0,0,""))
        self.InsertField(FieldReal(self,"Conductivity",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Density",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Specific Heat",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Thermal Absorptance",".9","","",0.99999,0,""))
        self.InsertField(FieldReal(self,"Solar Absorptance",".7","",0,1,"",""))
        self.InsertField(FieldReal(self,"Visible Absorptance",".7","",0,1,"",""))


        self.insertMemo(("Regular materials described with full set of thermal properties",))
        self.addReference("MaterialName")
        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Material")





class Material_NoMass(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Roughness","","",["VeryRough","Rough","MediumRough","MediumSmooth","Smooth","VerySmooth",]))
        self.InsertField(FieldReal(self,"Thermal Resistance",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Thermal Absorptance",".9","","",0.99999,0,""))
        self.InsertField(FieldReal(self,"Solar Absorptance",".7","",0,1,"",""))
        self.InsertField(FieldReal(self,"Visible Absorptance",".7","",0,1,"",""))


        self.insertMemo(("Regular materials properties described whose principal description is R (Thermal Resistance)",))
        self.addReference("MaterialName")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Material:NoMass")





class Material_InfraredTransparent(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))


        self.insertMemo(("Special infrared transparent material.  Similar to a Material:Nomass with low thermal resistance."," High absorptance in both wavelengths."," Area will be doubled internally to make internal radiant exchange accurate."," Should be only material in single layer surface construction."," All thermal properties are set internally. User needs only to supply name.",))
        self.addReference("MaterialName")
        self.setRequired(False)
        self.setMinfields(1)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Material:InfraredTransparent")





class Material_AirGap(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Thermal Resistance",0,"","","",0,""))


        self.insertMemo(("Air Space in Opaque Construction",))
        self.addReference("MaterialName")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Material:AirGap")





class Material_RoofVegetation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Height of Plants",".2",("The ecoroof module is designed for short plants and shrubs.","Units: m",),"", 1.0,0.01,""))
        self.InsertField(FieldReal(self,"Leaf Area Index","1.0",("Entire surface is assumed covered, so decrease LAI accordingly.","Units: dimensionless",),"",5.0,0.001,""))
        self.InsertField(FieldReal(self,"Leaf Reflectivity","0.22",("Leaf reflectivity (albedo) is typically 0.18-0.25","Units: dimensionless",),0.1,0.4,"",""))
        self.InsertField(FieldReal(self,"Leaf Emissivity","0.95","",0.8,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Stomatal Resistance","180.0",("This depends upon plant type","Units: s/m",),50.0,300.,"",""))
        self.InsertField(FieldText(self,"Soil Layer Name","Ecoroof Soil",""))
        self.InsertField(FieldChoice(self,"Roughness","MediumRough",("multiple choices","",),["VeryRough","MediumRough","Rough","Smooth","MediumSmooth","VerySmooth",]))
        self.InsertField(FieldReal(self,"Thickness","0.15",("thickness of the soil layer of the EcoRoof","Soil depths of 0.15m (6in) and 0.30m (12in) are common.","Units: m",),"",0.5,0.05,""))
        self.InsertField(FieldReal(self,"Conductivity of Dry Soil","0.4",("Thermal conductivity of dry soil.","Typical ecoroof soils range from 0.3 to 0.5","Units: W/m-K",), 0.2,1.0,"",""))
        self.InsertField(FieldReal(self,"Density of Dry Soil","500",("Density of dry soil (the code modifies this as the soil becomes moist)","Typical ecoroof soils range from 400 to 1000 (dry to wet)","Units: kg/m3",),300,2000,"",""))
        self.InsertField(FieldReal(self,"Specific Heat of Dry Soil","1000",("Specific heat of dry soil","Units: J/kg-K",),"",2000,500,""))
        self.InsertField(FieldReal(self,"Thermal Absorptance",".9",("Soil emissivity is typically in range of 0.90 to 0.98","",),"",1.0,0.8,""))
        self.InsertField(FieldReal(self,"Solar Absorptance",".70",("Solar absorptance of dry soil (1-albedo) is typically 0.60 to 0.85","corresponding to a dry albedo of 0.15 to 0.40","",),0.40,0.9,"",""))
        self.InsertField(FieldReal(self,"Visible Absorptance",".75","","",1.0,0.5,""))
        self.InsertField(FieldReal(self,"Saturation Volumetric Moisture Content of the Soil Layer","0.5",("Maximum moisture content is typically less than 0.5","",),"",1.0,0.1,""))
        self.InsertField(FieldReal(self,"Residual Volumetric Moisture Content of the Soil Layer","0.01","", 0.01, 0.1,"",""))
        self.InsertField(FieldReal(self,"Initial Volumetric Moisture Content of the Soil Layer","0.15","","", 1.0,0.1,""))


        self.insertMemo(("EcoRoof model, plant layer plus soil layer","Implemented by Portland State University","(Sailor et al., January, 2007)","only one material must be used per simulation though the same EcoRoof material could be","used in multiple constructoins.",))
        self.addReference("MaterialName")
        self.setRequired(False)
        self.setMinfields(18)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Material:RoofVegetation")





class RoofIrrigation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Irrigation Model Type","",("SmartSchedule will not allow irrigation when soil is already moist.","Current threshold set at 30% of saturation.","",),["Schedule","SmartSchedule",]))
        self.InsertField(FieldObjectlist(self,"Irrigation Rate Schedule Name","",("Schedule values in meters of water per hour","values should be non-negative","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoofIrrigation")





class WindowMaterial_Glazing(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Optical Data Type","","",["SpectralAverage","Spectral",]))
        self.InsertField(FieldText(self,"Window Glass Spectral Data Set Name","",("Used only when Optical Data Type = Spectral","",)))
        self.InsertField(FieldReal(self,"Thickness",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Solar Transmittance at Normal Incidence",0,("Used only when Optical Data Type = SpectralAverage","",),0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Front Side Solar Reflectance at Normal Incidence",0,("Used only when Optical Data Type = SpectralAverage","Front Side is side closest to outdoor air","minimum must be >0.0 for SpectralAverage","",),0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Back Side Solar Reflectance at Normal Incidence",0,("Used only when Optical Data Type = SpectralAverage","Back Side is side closest to zone air","minimum must be >0.0 for SpectralAverage","",),0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Visible Transmittance at Normal Incidence",0,("Used only when Optical Data Type = SpectralAverage","",),0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Front Side Visible Reflectance at Normal Incidence",0,("Used only when Optical Data Type = SpectralAverage","minimum must be >0.0 for SpectralAverage","",),0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Back Side Visible Reflectance at Normal Incidence",0,("Used only when Optical Data Type = SpectralAverage","minimum must be >0.0 for SpectralAverage","",),0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Infrared Transmittance at Normal Incidence","0.0","",0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Front Side Infrared Hemispherical Emissivity","0.84","","","",0.0,1.0))
        self.InsertField(FieldReal(self,"Back Side Infrared Hemispherical Emissivity","0.84","","","",0.0,1.0))
        self.InsertField(FieldReal(self,"Conductivity","0.9","","","",0.0,""))
        self.InsertField(FieldReal(self,"Dirt Correction Factor for Solar and Visible Transmittance","1.0","","",1.0,0.0,""))
        self.InsertField(FieldYesNo(self,"Solar Diffusing","No","",["No","Yes",]))


        self.insertMemo(("Glass material properties for Windows or Glass Doors","Transmittance/Reflectance input method.",))
        self.addReference("MaterialName")
        self.addReference("GlazingMaterialName")
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowMaterial:Glazing")





class WindowMaterial_GlazingGroup_Thermochromic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Optical Data Temperature 1",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Window Material Glazing Name 1","","","GlazingMaterialName"))


        self.insertMemo(("thermochromic glass at different temperatures",))
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(2)
        self.setClassnameIDD("WindowMaterial:GlazingGroup:Thermochromic")





class WindowMaterial_Glazing_RefractionExtinctionMethod(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Thickness",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Solar Index of Refraction",0,"","","",1.0,""))
        self.InsertField(FieldReal(self,"Solar Extinction Coefficient",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Visible Index of Refraction",0,"","","",1.0,""))
        self.InsertField(FieldReal(self,"Visible Extinction Coefficient",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Infrared Transmittance at Normal Incidence","0.0","",0.0,"","",1.0))
        self.InsertField(FieldReal(self,"Infrared Hemispherical Emissivity","0.84",("Emissivity of front and back side assumed equal","",),"","",0.0,1.0))
        self.InsertField(FieldReal(self,"Conductivity","0.9","","","",0.0,""))
        self.InsertField(FieldReal(self,"Dirt Correction Factor for Solar and Visible Transmittance","1.0","","",1.0,0.0,""))
        self.InsertField(FieldYesNo(self,"Solar Diffusing","No","",["No","Yes",]))


        self.insertMemo(("Glass material properties for Windows or Glass Doors","Index of Refraction/Extinction Coefficient input method","Not to be used for coated glass",))
        self.addReference("MaterialName")
        self.addReference("GlazingMaterialName")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowMaterial:Glazing:RefractionExtinctionMethod")





class WindowMaterial_Gas(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Gas Type","","",["Air","Argon","Krypton","Xenon","Custom",]))
        self.InsertField(FieldReal(self,"Thickness",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Conductivity Coefficient A",0,("Used only if Gas Type = Custom","Units: W/m-K",),"","","",""))
        self.InsertField(FieldReal(self,"Conductivity Coefficient B",0,("Used only if Gas Type = Custom","Units: W/m-K2",),"","","",""))
        self.InsertField(FieldReal(self,"Viscosity Coefficient A",0,("Used only if Gas Type = Custom","Units: g/m-s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Viscosity Coefficient B",0,("Used only if Gas Type = Custom","Units: g/m-s-K",),"","","",""))
        self.InsertField(FieldReal(self,"Specific Heat Coefficient A",0,("Used only if Gas Type = Custom","Units: J/kg-K",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Specific Heat Coefficient B",0,("Used only if Gas Type = Custom","Units: J/kg-K2",),"","","",""))
        self.InsertField(FieldReal(self,"Molecular Weight",0,("Used only if Gas Type = Custom","",),20.0,200.0,"",""))


        self.insertMemo(("Gas material properties that are used in Windows or Glass Doors",))
        self.addReference("MaterialName")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowMaterial:Gas")





class WindowMaterial_GasMixture(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Thickness",0,"","","",0.0,""))
        self.InsertField(FieldInt(self,"Number of Gases in Mixture",0,"",1,4,"",""))
        self.InsertField(FieldChoice(self,"Gas 1 Type","","",["Air","Argon","Krypton","Xenon",]))
        self.InsertField(FieldReal(self,"Gas 1 Fraction",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Gas 2 Type","","",["Air","Argon","Krypton","Xenon",]))
        self.InsertField(FieldReal(self,"Gas 2 Fraction",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Gas 3 Type","","",["Air","Argon","Krypton","Xenon",]))
        self.InsertField(FieldReal(self,"Gas 3 Fraction",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Gas 4 Type","","",["Air","Argon","Krypton","Xenon",]))
        self.InsertField(FieldReal(self,"Gas 4 Fraction",0,"","",1.0,0.0,""))


        self.insertMemo(("Gas mixtures that are used in Windows or Glass Doors",))
        self.addReference("MaterialName")
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowMaterial:GasMixture")





class WindowMaterial_Shade(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Solar Transmittance",0,("Assumed independent of incidence angle","",),0,"","",1))
        self.InsertField(FieldReal(self,"Solar Reflectance",0,("Assumed same for both sides","Assumed independent of incidence angle","",),0,"","",1))
        self.InsertField(FieldReal(self,"Visible Transmittance",0,("Assumed independent of incidence angle","",),0,"","",1))
        self.InsertField(FieldReal(self,"Visible Reflectance",0,("Assumed same for both sides","Assumed independent of incidence angle","",),0,"","",1))
        self.InsertField(FieldReal(self,"Thermal Hemispherical Emissivity",0,"","","",0,1))
        self.InsertField(FieldReal(self,"Thermal Transmittance",0,"",0,"","",1))
        self.InsertField(FieldReal(self,"Thickness",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Conductivity",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Shade to Glass Distance","0.050","",0.001,1.0,"",""))
        self.InsertField(FieldReal(self,"Top Opening Multiplier","0.5","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Bottom Opening Multiplier","0.5","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Left-Side Opening Multiplier","0.5","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Right-Side Opening Multiplier","0.5","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Airflow Permeability","0.0","",0.0,0.8,"",""))


        self.insertMemo(("Window shade thermal properties",))
        self.addReference("MaterialName")
        self.addReference("WindowShadesScreensAndBlinds")
        self.setRequired(False)
        self.setMinfields(15)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowMaterial:Shade")





class WindowMaterial_Blind(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Slat Orientation","Horizontal","",["Horizontal","Vertical",]))
        self.InsertField(FieldReal(self,"Slat Width",0,"","",1,0,""))
        self.InsertField(FieldReal(self,"Slat Separation",0,("Distance between adjacent slat faces","Units: m",),"",1,0,""))
        self.InsertField(FieldReal(self,"Slat Thickness","0.00025",("Distance between top and bottom surfaces of slat","Slat is assumed to be rectangular in cross section and flat","Units: m",),"",0.1,0,""))
        self.InsertField(FieldReal(self,"Slat Angle","45",("If WindowProperty:ShadingControl for the window that incorporates this blind","has Type of Slat Angle Control for Blinds = FixedSlatAngle,","then this is the fixed value of the slat angle;","If WindowProperty:ShadingControl for the window that incorporates this blind","has Type of Slat Angle Control for Blinds = BlockBeamSolar,","then this is the slat angle when slat angle control","is not in effect (e.g., when there is no beam solar on the blind);","Not used if WindowProperty:ShadingControl for the window that incorporates this blind","has Type of Slat Angle Control for Blinds = ScheduledSlatAngle.","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Slat Conductivity","221.0",("default is for aluminum","Units: W/m-K",),"","",0,""))
        self.InsertField(FieldReal(self,"Slat Beam Solar Transmittance","0","",0,"","",1))
        self.InsertField(FieldReal(self,"Front Side Slat Beam Solar Reflectance",0,"",0,"","",1))
        self.InsertField(FieldReal(self,"Back Side Slat Beam Solar Reflectance",0,"",0,"","",1))
        self.InsertField(FieldReal(self,"Slat Diffuse Solar Transmittance","0",("Must equal *Slat beam solar transmittance*","",),0,"","",1))
        self.InsertField(FieldReal(self,"Front Side Slat Diffuse Solar Reflectance",0,("Must equal *Front Side Slat Beam Solar Reflectance*","",),0,"","",1))
        self.InsertField(FieldReal(self,"Back Side Slat Diffuse Solar Reflectance",0,("Must equal *Back Side Slat Beam Solar Reflectance*","",),0,"","",1))
        self.InsertField(FieldReal(self,"Slat Beam Visible Transmittance",0,("Required for detailed daylighting calculation","",),0,"","",1))
        self.InsertField(FieldReal(self,"Front Side Slat Beam Visible Reflectance",0,("Required for detailed daylighting calculation","",),0,"","",1))
        self.InsertField(FieldReal(self,"Back Side Slat Beam Visible Reflectance",0,("Required for detailed daylighting calculation","",),0,"","",1))
        self.InsertField(FieldReal(self,"Slat Diffuse Visible Transmittance","0",("Used only for detailed daylighting calculation","Must equal *Slat Beam Visible Transmittance*","",),0,"","",1))
        self.InsertField(FieldReal(self,"Front Side Slat Diffuse Visible Reflectance",0,("Required for detailed daylighting calculation","Must equal *Front Side Slat Beam Visible Reflectance*","",),0,"","",1))
        self.InsertField(FieldReal(self,"Back Side Slat Diffuse Visible Reflectance",0,("Required for detailed daylighting calculation","Must equal *Back Side Slat Beam Visible Reflectance*","",),0,"","",1))
        self.InsertField(FieldReal(self,"Slat Infrared Hemispherical Transmittance","0","",0,"","",1))
        self.InsertField(FieldReal(self,"Front Side Slat Infrared Hemispherical Emissivity","0.9","",0,"","",1))
        self.InsertField(FieldReal(self,"Back Side Slat Infrared Hemispherical Emissivity","0.9","",0,"","",1))
        self.InsertField(FieldReal(self,"Blind to Glass Distance","0.050","",0.01,1.0,"",""))
        self.InsertField(FieldReal(self,"Blind Top Opening Multiplier","0.5","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Blind Bottom Opening Multiplier","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Blind Left Side Opening Multiplier","0.5","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Blind Right Side Opening Multiplier","0.5","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Slat Angle","0",("Used only if WindowProperty:ShadingControl for the window that incorporates","this blind varies the slat angle (i.e., WindowProperty:ShadingControl with","Type of Slat Angle Control for Blinds = ScheduledSlatAngle","or BlockBeamSolar)","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Maximum Slat Angle","180",("Used only if WindowProperty:ShadingControl for the window that incorporates","this blind varies the slat angle (i.e., WindowProperty:ShadingControl with","Type of Slat Angle Control for Blinds = ScheduledSlatAngle","or BlockBeamSolar)","Units: deg",),0,180,"",""))


        self.insertMemo(("Window blind thermal properties",))
        self.addReference("MaterialName")
        self.addReference("WindowShadesScreensAndBlinds")
        self.setRequired(False)
        self.setMinfields(29)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowMaterial:Blind")





class WindowMaterial_Screen(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this window screen material.","",)))
        self.InsertField(FieldChoice(self,"Reflected Beam Transmittance Accounting Method","ModelAsDiffuse",("Select the method used to account for the beam solar reflected off the material surface.","",),["DoNotModel","ModelAsDirectBeam","ModelAsDiffuse",]))
        self.InsertField(FieldReal(self,"Diffuse Solar Reflectance",0,("Diffuse reflectance of the screen material over the entire solar radiation spectrum.","Assumed to be the same for both sides of the screen.","Units: dimensionless",),0,"","",1))
        self.InsertField(FieldReal(self,"Diffuse Visible Reflectance",0,("Diffuse visible reflectance of the screen material averaged over the solar spectrum","and weighted by the response of the human eye.","Assumed to be the same for both sides of the screen.","Units: dimensionless",),0,"","",1))
        self.InsertField(FieldReal(self,"Thermal Hemispherical Emissivity","0.9",("Long-wave emissivity of the screen material.","Assumed to be the same for both sides of the screen.","Units: dimensionless",),"","",0,1))
        self.InsertField(FieldReal(self,"Conductivity","221.0",("Thermal conductivity of the screen material.","Default is for aluminum.","Units: W/m-K",),"","",0,""))
        self.InsertField(FieldReal(self,"Screen Material Spacing",0,("Spacing assumed to be the same in both directions.","Units: m",),"","",0,""))
        self.InsertField(FieldReal(self,"Screen Material Diameter",0,("Diameter assumed to be the same in both directions.","Units: m",),"","",0,""))
        self.InsertField(FieldReal(self,"Screen to Glass Distance","0.025",("Distance from the window screen to the adjacent glass surface.","Units: m",),0.001,1.0,"",""))
        self.InsertField(FieldReal(self,"Top Opening Multiplier","0.0",("Effective area for air flow at the top of the screen divided by the perpendicular","area between the glass and the top of the screen.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Bottom Opening Multiplier","0.0",("Effective area for air flow at the bottom of the screen divided by the perpendicular","area between the glass and the bottom of the screen.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Left Side Opening Multiplier","0.0",("Effective area for air flow at the left side of the screen divided by the perpendicular","area between the glass and the left side of the screen.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Right Side Opening Multiplier","0.0",("Effective area for air flow at the right side of the screen divided by the perpendicular","area between the glass and the right side of the screen.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Angle of Resolution for Screen Transmittance Output Map","0",("Select the resolution of azimuth and altitude angles for the screen transmittance map.","A value of 0 means no transmittance map will be generated.","Valid values for this field are 0, 1, 2, 3 and 5.","Units: deg",),["0","1","2","3","5",]))


        self.insertMemo(("Window screen physical properties. Can only be located on the exterior side of a window construction.",))
        self.addReference("MaterialName")
        self.addReference("WindowShadesScreensAndBlinds")
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowMaterial:Screen")





class MaterialProperty_MoisturePenetrationDepth_Settings(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Material Name that the moisture properties will be added to.","Additional material properties required to perform the EMPD model.","Effective Mean Penetration Depth (EMPD)","",),"MaterialName"))
        self.InsertField(FieldReal(self,"Moisture Penetration Depth",0,("This is the penetration depth","Units: m",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Moisture Equation Coefficient a",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Equation Coefficient b",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Equation Coefficient c",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Equation Coefficient d",0,"","","","",""))


        self.insertMemo(("Additional properties for moisture using EMPD procedure","HeatBalanceAlgorithm choice=MoisturePenetrationDepthConductionTransferFunction",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:MoisturePenetrationDepth:Settings")





class MaterialProperty_PhaseChange(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Regular Material Name to which the additional properties will be added.","this the material name for the basic material properties.","",),"MaterialName"))
        self.InsertField(FieldReal(self,"Temperature Coefficient for Thermal Conductivity","0.0",("The base temperature is 20C.","This is the thermal conductivity change per degree excursion from 20C.","Units: W/m-K2",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 1","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 1","0.0",("for Temperature-enthalpy function corresponding to temperature 1","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 2","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 2","0.0",("for Temperature-enthalpy function corresponding to temperature 2","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 3","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 3","0.0",("for Temperature-enthalpy function corresponding to temperature 3","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 4","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 4","0.0",("for Temperature-enthalpy function corresponding to temperature 4","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 5","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 5","0.0",("for Temperature-enthalpy function corresponding to temperature 5","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 6","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 6","0.0",("for Temperature-enthalpy function corresponding to temperature 6","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 7","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 7","0.0",("for Temperature-enthalpy function corresponding to temperature 7","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 8","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 8","0.0",("for Temperature-enthalpy function corresponding to temperature 8","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 9","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 9","0.0",("for Temperature-enthalpy function corresponding to temperature 1","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 10","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 10","0.0",("for Temperature-enthalpy function corresponding to temperature 2","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 11","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 11","0.0",("for Temperature-enthalpy function corresponding to temperature 3","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 12","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 12","0.0",("for Temperature-enthalpy function corresponding to temperature 14","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 13","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 13","0.0",("for Temperature-enthalpy function corresponding to temperature 15","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 14","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 14","0.0",("for Temperature-enthalpy function corresponding to temperature 16","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 15","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 15","0.0",("for Temperature-enthalpy function corresponding to temperature 17","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature 16","0.0",("for Temperature-enthalpy function","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy 16","0.0",("for Temperature-enthalpy function corresponding to temperature 16","Units: J/kg",),"","","",""))


        self.insertMemo(("Additional properties for temperature dependent thermal conductivity","and enthalpy for Phase Change Materials (PCM)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:PhaseChange")





class MaterialProperty_HeatAndMoistureTransfer_Settings(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Material Name","",("Material Name that the moisture properties will be added to.","This augments material properties needed for combined heat and moisture transfer for surfaces.","",),"MaterialName"))
        self.InsertField(FieldReal(self,"Porosity",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Initial Water Content Ratio","0.2","",0.0,"","",""))


        self.insertMemo(("Additional material properties for CombinedHeatAndMoistureFiniteElement algorithm for surfaces.","units are the water/material density ratio at the begining of each run period.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:HeatAndMoistureTransfer:Settings")





class MaterialProperty_HeatAndMoistureTransfer_SorptionIsotherm(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Material Name","",("The Material Name that the moisture sorption isotherm will be added to.","",),"MaterialName"))
        self.InsertField(FieldInt(self,"Number of Isotherm Coordinates",0,("Number of data Coordinates","",),1,25,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 25",0,"","","","",""))


        self.insertMemo(("Additional properties for CombinedHeatAndMoistureFiniteElement algorithm for surfaces.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm")





class MaterialProperty_HeatAndMoistureTransfer_Suction(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Material Name","",("Material Name that the moisture properties will be added to.","",),"MaterialName"))
        self.InsertField(FieldInt(self,"Number of Suction points",0,("Number of Suction Liquid Transport Coefficient coordinates","",),1,25,"",""))
        self.InsertField(FieldReal(self,"Moisture Content 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 25",0,"","","","",""))


        self.insertMemo(("Additional properties for CombinedHeatAndMoistureFiniteElement algorithm for surfaces.","Relationship between liquid suction transport coefficient and moisture content",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:HeatAndMoistureTransfer:Suction")





class MaterialProperty_HeatAndMoistureTransfer_Redistribution(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Material Name","",("Moisture Material Name that the moisture properties will be added to.","",),"MaterialName"))
        self.InsertField(FieldInt(self,"Number of Redistribution points",0,("number of data points","",),1,25,"",""))
        self.InsertField(FieldReal(self,"Moisture Content 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Transport Coefficient 25",0,"","","","",""))


        self.insertMemo(("Additional properties for CombinedHeatAndMoistureFiniteElement algorithm for surfaces.","Relationship between liquid transport coefficient and moisture content",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:HeatAndMoistureTransfer:Redistribution")





class MaterialProperty_HeatAndMoistureTransfer_Diffusion(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Material Name","",("Moisture Material Name that the moisture properties will be added to.","",),"MaterialName"))
        self.InsertField(FieldInt(self,"Number of Data Pairs",0,("Water Vapor Diffusion Resistance Factor","",),0,25,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Relative Humidity 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Water Vapor Diffusion Resistance Factor 25",0,"","","","",""))


        self.insertMemo(("Additional properties for CombinedHeatAndMoistureFiniteElement algorithm for surfaces.","Relationship between water vapor diffusion and relative humidity",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:HeatAndMoistureTransfer:Diffusion")





class MaterialProperty_HeatAndMoistureTransfer_ThermalConductivity(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Material Name","",("Moisture Material Name that the Thermal Conductivity will be added to.","",),"MaterialName"))
        self.InsertField(FieldInt(self,"Number of Thermal Coordinates",0,("number of data coordinates","",),0,25,"",""))
        self.InsertField(FieldReal(self,"Moisture Content 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Moisture Content 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Thermal Conductivity 25",0,"","","","",""))


        self.insertMemo(("Additional properties for CombinedHeatAndMoistureFiniteElement algorithm for surfaces.","Relationship between thermal conductivity and moisture content",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity")





class MaterialProperty_GlazingSpectralData(ObjectSpectral):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"N1",0,"","","","",""))
        self.InsertField(FieldReal(self,"N2",0,"","","","",""))
        self.InsertField(FieldReal(self,"N3",0,"","","","",""))
        self.InsertField(FieldReal(self,"N4",0,"","","","",""))
        self.InsertField(FieldReal(self,"N5",0,"","","","",""))
        self.InsertField(FieldReal(self,"N6",0,"","","","",""))
        self.InsertField(FieldReal(self,"N7",0,"","","","",""))
        self.InsertField(FieldReal(self,"N8",0,"","","","",""))
        self.InsertField(FieldReal(self,"N9",0,"","","","",""))
        self.InsertField(FieldReal(self,"N10",0,"","","","",""))
        self.InsertField(FieldReal(self,"N11",0,"","","","",""))
        self.InsertField(FieldReal(self,"N12",0,"","","","",""))
        self.InsertField(FieldReal(self,"N13",0,"","","","",""))
        self.InsertField(FieldReal(self,"N14",0,"","","","",""))
        self.InsertField(FieldReal(self,"N15",0,"","","","",""))
        self.InsertField(FieldReal(self,"N16",0,"","","","",""))
        self.InsertField(FieldReal(self,"N17",0,"","","","",""))
        self.InsertField(FieldReal(self,"N18",0,"","","","",""))
        self.InsertField(FieldReal(self,"N19",0,"","","","",""))
        self.InsertField(FieldReal(self,"N20",0,"","","","",""))
        self.InsertField(FieldReal(self,"N21",0,"","","","",""))
        self.InsertField(FieldReal(self,"N22",0,"","","","",""))
        self.InsertField(FieldReal(self,"N23",0,"","","","",""))
        self.InsertField(FieldReal(self,"N24",0,"","","","",""))
        self.InsertField(FieldReal(self,"N25",0,"","","","",""))
        self.InsertField(FieldReal(self,"N26",0,"","","","",""))
        self.InsertField(FieldReal(self,"N27",0,"","","","",""))
        self.InsertField(FieldReal(self,"N28",0,"","","","",""))
        self.InsertField(FieldReal(self,"N29",0,"","","","",""))
        self.InsertField(FieldReal(self,"N30",0,"","","","",""))
        self.InsertField(FieldReal(self,"N31",0,"","","","",""))
        self.InsertField(FieldReal(self,"N32",0,"","","","",""))
        self.InsertField(FieldReal(self,"N33",0,"","","","",""))
        self.InsertField(FieldReal(self,"N34",0,"","","","",""))
        self.InsertField(FieldReal(self,"N35",0,"","","","",""))
        self.InsertField(FieldReal(self,"N36",0,"","","","",""))
        self.InsertField(FieldReal(self,"N37",0,"","","","",""))
        self.InsertField(FieldReal(self,"N38",0,"","","","",""))
        self.InsertField(FieldReal(self,"N39",0,"","","","",""))
        self.InsertField(FieldReal(self,"N40",0,"","","","",""))
        self.InsertField(FieldReal(self,"N41",0,"","","","",""))
        self.InsertField(FieldReal(self,"N42",0,"","","","",""))
        self.InsertField(FieldReal(self,"N43",0,"","","","",""))
        self.InsertField(FieldReal(self,"N44",0,"","","","",""))
        self.InsertField(FieldReal(self,"N45",0,"","","","",""))
        self.InsertField(FieldReal(self,"N46",0,"","","","",""))
        self.InsertField(FieldReal(self,"N47",0,"","","","",""))
        self.InsertField(FieldReal(self,"N48",0,"","","","",""))
        self.InsertField(FieldReal(self,"N49",0,"","","","",""))
        self.InsertField(FieldReal(self,"N50",0,"","","","",""))
        self.InsertField(FieldReal(self,"N51",0,"","","","",""))
        self.InsertField(FieldReal(self,"N52",0,"","","","",""))
        self.InsertField(FieldReal(self,"N53",0,"","","","",""))
        self.InsertField(FieldReal(self,"N54",0,"","","","",""))
        self.InsertField(FieldReal(self,"N55",0,"","","","",""))
        self.InsertField(FieldReal(self,"N56",0,"","","","",""))
        self.InsertField(FieldReal(self,"N57",0,"","","","",""))
        self.InsertField(FieldReal(self,"N58",0,"","","","",""))
        self.InsertField(FieldReal(self,"N59",0,"","","","",""))
        self.InsertField(FieldReal(self,"N60",0,"","","","",""))
        self.InsertField(FieldReal(self,"N61",0,"","","","",""))
        self.InsertField(FieldReal(self,"N62",0,"","","","",""))
        self.InsertField(FieldReal(self,"N63",0,"","","","",""))
        self.InsertField(FieldReal(self,"N64",0,"","","","",""))
        self.InsertField(FieldReal(self,"N65",0,"","","","",""))
        self.InsertField(FieldReal(self,"N66",0,"","","","",""))
        self.InsertField(FieldReal(self,"N67",0,"","","","",""))
        self.InsertField(FieldReal(self,"N68",0,"","","","",""))
        self.InsertField(FieldReal(self,"N69",0,"","","","",""))
        self.InsertField(FieldReal(self,"N70",0,"","","","",""))
        self.InsertField(FieldReal(self,"N71",0,"","","","",""))
        self.InsertField(FieldReal(self,"N72",0,"","","","",""))
        self.InsertField(FieldReal(self,"N73",0,"","","","",""))
        self.InsertField(FieldReal(self,"N74",0,"","","","",""))
        self.InsertField(FieldReal(self,"N75",0,"","","","",""))
        self.InsertField(FieldReal(self,"N76",0,"","","","",""))
        self.InsertField(FieldReal(self,"N77",0,"","","","",""))
        self.InsertField(FieldReal(self,"N78",0,"","","","",""))
        self.InsertField(FieldReal(self,"N79",0,"","","","",""))
        self.InsertField(FieldReal(self,"N80",0,"","","","",""))
        self.InsertField(FieldReal(self,"N81",0,"","","","",""))
        self.InsertField(FieldReal(self,"N82",0,"","","","",""))
        self.InsertField(FieldReal(self,"N83",0,"","","","",""))
        self.InsertField(FieldReal(self,"N84",0,"","","","",""))
        self.InsertField(FieldReal(self,"N85",0,"","","","",""))
        self.InsertField(FieldReal(self,"N86",0,"","","","",""))
        self.InsertField(FieldReal(self,"N87",0,"","","","",""))
        self.InsertField(FieldReal(self,"N88",0,"","","","",""))
        self.InsertField(FieldReal(self,"N89",0,"","","","",""))
        self.InsertField(FieldReal(self,"N90",0,"","","","",""))
        self.InsertField(FieldReal(self,"N91",0,"","","","",""))
        self.InsertField(FieldReal(self,"N92",0,"","","","",""))
        self.InsertField(FieldReal(self,"N93",0,"","","","",""))
        self.InsertField(FieldReal(self,"N94",0,"","","","",""))
        self.InsertField(FieldReal(self,"N95",0,"","","","",""))
        self.InsertField(FieldReal(self,"N96",0,"","","","",""))
        self.InsertField(FieldReal(self,"N97",0,"","","","",""))
        self.InsertField(FieldReal(self,"N98",0,"","","","",""))
        self.InsertField(FieldReal(self,"N99",0,"","","","",""))
        self.InsertField(FieldReal(self,"N100",0,"","","","",""))
        self.InsertField(FieldReal(self,"N101",0,"","","","",""))
        self.InsertField(FieldReal(self,"N102",0,"","","","",""))
        self.InsertField(FieldReal(self,"N103",0,"","","","",""))
        self.InsertField(FieldReal(self,"N104",0,"","","","",""))
        self.InsertField(FieldReal(self,"N105",0,"","","","",""))
        self.InsertField(FieldReal(self,"N106",0,"","","","",""))
        self.InsertField(FieldReal(self,"N107",0,"","","","",""))
        self.InsertField(FieldReal(self,"N108",0,"","","","",""))
        self.InsertField(FieldReal(self,"N109",0,"","","","",""))
        self.InsertField(FieldReal(self,"N110",0,"","","","",""))
        self.InsertField(FieldReal(self,"N111",0,"","","","",""))
        self.InsertField(FieldReal(self,"N112",0,"","","","",""))
        self.InsertField(FieldReal(self,"N113",0,"","","","",""))
        self.InsertField(FieldReal(self,"N114",0,"","","","",""))
        self.InsertField(FieldReal(self,"N115",0,"","","","",""))
        self.InsertField(FieldReal(self,"N116",0,"","","","",""))
        self.InsertField(FieldReal(self,"N117",0,"","","","",""))
        self.InsertField(FieldReal(self,"N118",0,"","","","",""))
        self.InsertField(FieldReal(self,"N119",0,"","","","",""))
        self.InsertField(FieldReal(self,"N120",0,"","","","",""))
        self.InsertField(FieldReal(self,"N121",0,"","","","",""))
        self.InsertField(FieldReal(self,"N122",0,"","","","",""))
        self.InsertField(FieldReal(self,"N123",0,"","","","",""))
        self.InsertField(FieldReal(self,"N124",0,"","","","",""))
        self.InsertField(FieldReal(self,"N125",0,"","","","",""))
        self.InsertField(FieldReal(self,"N126",0,"","","","",""))
        self.InsertField(FieldReal(self,"N127",0,"","","","",""))
        self.InsertField(FieldReal(self,"N128",0,"","","","",""))
        self.InsertField(FieldReal(self,"N129",0,"","","","",""))
        self.InsertField(FieldReal(self,"N130",0,"","","","",""))
        self.InsertField(FieldReal(self,"N131",0,"","","","",""))
        self.InsertField(FieldReal(self,"N132",0,"","","","",""))
        self.InsertField(FieldReal(self,"N133",0,"","","","",""))
        self.InsertField(FieldReal(self,"N134",0,"","","","",""))
        self.InsertField(FieldReal(self,"N135",0,"","","","",""))
        self.InsertField(FieldReal(self,"N136",0,"","","","",""))
        self.InsertField(FieldReal(self,"N137",0,"","","","",""))
        self.InsertField(FieldReal(self,"N138",0,"","","","",""))
        self.InsertField(FieldReal(self,"N139",0,"","","","",""))
        self.InsertField(FieldReal(self,"N140",0,"","","","",""))
        self.InsertField(FieldReal(self,"N141",0,"","","","",""))
        self.InsertField(FieldReal(self,"N142",0,"","","","",""))
        self.InsertField(FieldReal(self,"N143",0,"","","","",""))
        self.InsertField(FieldReal(self,"N144",0,"","","","",""))
        self.InsertField(FieldReal(self,"N145",0,"","","","",""))
        self.InsertField(FieldReal(self,"N146",0,"","","","",""))
        self.InsertField(FieldReal(self,"N147",0,"","","","",""))
        self.InsertField(FieldReal(self,"N148",0,"","","","",""))
        self.InsertField(FieldReal(self,"N149",0,"","","","",""))
        self.InsertField(FieldReal(self,"N150",0,"","","","",""))
        self.InsertField(FieldReal(self,"N151",0,"","","","",""))
        self.InsertField(FieldReal(self,"N152",0,"","","","",""))
        self.InsertField(FieldReal(self,"N153",0,"","","","",""))
        self.InsertField(FieldReal(self,"N154",0,"","","","",""))
        self.InsertField(FieldReal(self,"N155",0,"","","","",""))
        self.InsertField(FieldReal(self,"N156",0,"","","","",""))
        self.InsertField(FieldReal(self,"N157",0,"","","","",""))
        self.InsertField(FieldReal(self,"N158",0,"","","","",""))
        self.InsertField(FieldReal(self,"N159",0,"","","","",""))
        self.InsertField(FieldReal(self,"N160",0,"","","","",""))
        self.InsertField(FieldReal(self,"N161",0,"","","","",""))
        self.InsertField(FieldReal(self,"N162",0,"","","","",""))
        self.InsertField(FieldReal(self,"N163",0,"","","","",""))
        self.InsertField(FieldReal(self,"N164",0,"","","","",""))
        self.InsertField(FieldReal(self,"N165",0,"","","","",""))
        self.InsertField(FieldReal(self,"N166",0,"","","","",""))
        self.InsertField(FieldReal(self,"N167",0,"","","","",""))
        self.InsertField(FieldReal(self,"N168",0,"","","","",""))
        self.InsertField(FieldReal(self,"N169",0,"","","","",""))
        self.InsertField(FieldReal(self,"N170",0,"","","","",""))
        self.InsertField(FieldReal(self,"N171",0,"","","","",""))
        self.InsertField(FieldReal(self,"N172",0,"","","","",""))
        self.InsertField(FieldReal(self,"N173",0,"","","","",""))
        self.InsertField(FieldReal(self,"N174",0,"","","","",""))
        self.InsertField(FieldReal(self,"N175",0,"","","","",""))
        self.InsertField(FieldReal(self,"N176",0,"","","","",""))
        self.InsertField(FieldReal(self,"N177",0,"","","","",""))
        self.InsertField(FieldReal(self,"N178",0,"","","","",""))
        self.InsertField(FieldReal(self,"N179",0,"","","","",""))
        self.InsertField(FieldReal(self,"N180",0,"","","","",""))
        self.InsertField(FieldReal(self,"N181",0,"","","","",""))
        self.InsertField(FieldReal(self,"N182",0,"","","","",""))
        self.InsertField(FieldReal(self,"N183",0,"","","","",""))
        self.InsertField(FieldReal(self,"N184",0,"","","","",""))
        self.InsertField(FieldReal(self,"N185",0,"","","","",""))
        self.InsertField(FieldReal(self,"N186",0,"","","","",""))
        self.InsertField(FieldReal(self,"N187",0,"","","","",""))
        self.InsertField(FieldReal(self,"N188",0,"","","","",""))
        self.InsertField(FieldReal(self,"N189",0,"","","","",""))
        self.InsertField(FieldReal(self,"N190",0,"","","","",""))
        self.InsertField(FieldReal(self,"N191",0,"","","","",""))
        self.InsertField(FieldReal(self,"N192",0,"","","","",""))
        self.InsertField(FieldReal(self,"N193",0,"","","","",""))
        self.InsertField(FieldReal(self,"N194",0,"","","","",""))
        self.InsertField(FieldReal(self,"N195",0,"","","","",""))
        self.InsertField(FieldReal(self,"N196",0,"","","","",""))
        self.InsertField(FieldReal(self,"N197",0,"","","","",""))
        self.InsertField(FieldReal(self,"N198",0,"","","","",""))
        self.InsertField(FieldReal(self,"N199",0,"","","","",""))
        self.InsertField(FieldReal(self,"N200",0,"","","","",""))
        self.InsertField(FieldReal(self,"N201",0,"","","","",""))
        self.InsertField(FieldReal(self,"N202",0,"","","","",""))
        self.InsertField(FieldReal(self,"N203",0,"","","","",""))
        self.InsertField(FieldReal(self,"N204",0,"","","","",""))
        self.InsertField(FieldReal(self,"N205",0,"","","","",""))
        self.InsertField(FieldReal(self,"N206",0,"","","","",""))
        self.InsertField(FieldReal(self,"N207",0,"","","","",""))
        self.InsertField(FieldReal(self,"N208",0,"","","","",""))
        self.InsertField(FieldReal(self,"N209",0,"","","","",""))
        self.InsertField(FieldReal(self,"N210",0,"","","","",""))
        self.InsertField(FieldReal(self,"N211",0,"","","","",""))
        self.InsertField(FieldReal(self,"N212",0,"","","","",""))
        self.InsertField(FieldReal(self,"N213",0,"","","","",""))
        self.InsertField(FieldReal(self,"N214",0,"","","","",""))
        self.InsertField(FieldReal(self,"N215",0,"","","","",""))
        self.InsertField(FieldReal(self,"N216",0,"","","","",""))
        self.InsertField(FieldReal(self,"N217",0,"","","","",""))
        self.InsertField(FieldReal(self,"N218",0,"","","","",""))
        self.InsertField(FieldReal(self,"N219",0,"","","","",""))
        self.InsertField(FieldReal(self,"N220",0,"","","","",""))
        self.InsertField(FieldReal(self,"N221",0,"","","","",""))
        self.InsertField(FieldReal(self,"N222",0,"","","","",""))
        self.InsertField(FieldReal(self,"N223",0,"","","","",""))
        self.InsertField(FieldReal(self,"N224",0,"","","","",""))
        self.InsertField(FieldReal(self,"N225",0,"","","","",""))
        self.InsertField(FieldReal(self,"N226",0,"","","","",""))
        self.InsertField(FieldReal(self,"N227",0,"","","","",""))
        self.InsertField(FieldReal(self,"N228",0,"","","","",""))
        self.InsertField(FieldReal(self,"N229",0,"","","","",""))
        self.InsertField(FieldReal(self,"N230",0,"","","","",""))
        self.InsertField(FieldReal(self,"N231",0,"","","","",""))
        self.InsertField(FieldReal(self,"N232",0,"","","","",""))
        self.InsertField(FieldReal(self,"N233",0,"","","","",""))
        self.InsertField(FieldReal(self,"N234",0,"","","","",""))
        self.InsertField(FieldReal(self,"N235",0,"","","","",""))
        self.InsertField(FieldReal(self,"N236",0,"","","","",""))
        self.InsertField(FieldReal(self,"N237",0,"","","","",""))
        self.InsertField(FieldReal(self,"N238",0,"","","","",""))
        self.InsertField(FieldReal(self,"N239",0,"","","","",""))
        self.InsertField(FieldReal(self,"N240",0,"","","","",""))
        self.InsertField(FieldReal(self,"N241",0,"","","","",""))
        self.InsertField(FieldReal(self,"N242",0,"","","","",""))
        self.InsertField(FieldReal(self,"N243",0,"","","","",""))
        self.InsertField(FieldReal(self,"N244",0,"","","","",""))
        self.InsertField(FieldReal(self,"N245",0,"","","","",""))
        self.InsertField(FieldReal(self,"N246",0,"","","","",""))
        self.InsertField(FieldReal(self,"N247",0,"","","","",""))
        self.InsertField(FieldReal(self,"N248",0,"","","","",""))
        self.InsertField(FieldReal(self,"N249",0,"","","","",""))
        self.InsertField(FieldReal(self,"N250",0,"","","","",""))
        self.InsertField(FieldReal(self,"N251",0,"","","","",""))
        self.InsertField(FieldReal(self,"N252",0,"","","","",""))
        self.InsertField(FieldReal(self,"N253",0,"","","","",""))
        self.InsertField(FieldReal(self,"N254",0,"","","","",""))
        self.InsertField(FieldReal(self,"N255",0,"","","","",""))
        self.InsertField(FieldReal(self,"N256",0,"","","","",""))
        self.InsertField(FieldReal(self,"N257",0,"","","","",""))
        self.InsertField(FieldReal(self,"N258",0,"","","","",""))
        self.InsertField(FieldReal(self,"N259",0,"","","","",""))
        self.InsertField(FieldReal(self,"N260",0,"","","","",""))
        self.InsertField(FieldReal(self,"N261",0,"","","","",""))
        self.InsertField(FieldReal(self,"N262",0,"","","","",""))
        self.InsertField(FieldReal(self,"N263",0,"","","","",""))
        self.InsertField(FieldReal(self,"N264",0,"","","","",""))
        self.InsertField(FieldReal(self,"N265",0,"","","","",""))
        self.InsertField(FieldReal(self,"N266",0,"","","","",""))
        self.InsertField(FieldReal(self,"N267",0,"","","","",""))
        self.InsertField(FieldReal(self,"N268",0,"","","","",""))
        self.InsertField(FieldReal(self,"N269",0,"","","","",""))
        self.InsertField(FieldReal(self,"N270",0,"","","","",""))
        self.InsertField(FieldReal(self,"N271",0,"","","","",""))
        self.InsertField(FieldReal(self,"N272",0,"","","","",""))
        self.InsertField(FieldReal(self,"N273",0,"","","","",""))
        self.InsertField(FieldReal(self,"N274",0,"","","","",""))
        self.InsertField(FieldReal(self,"N275",0,"","","","",""))
        self.InsertField(FieldReal(self,"N276",0,"","","","",""))
        self.InsertField(FieldReal(self,"N277",0,"","","","",""))
        self.InsertField(FieldReal(self,"N278",0,"","","","",""))
        self.InsertField(FieldReal(self,"N279",0,"","","","",""))
        self.InsertField(FieldReal(self,"N280",0,"","","","",""))
        self.InsertField(FieldReal(self,"N281",0,"","","","",""))
        self.InsertField(FieldReal(self,"N282",0,"","","","",""))
        self.InsertField(FieldReal(self,"N283",0,"","","","",""))
        self.InsertField(FieldReal(self,"N284",0,"","","","",""))
        self.InsertField(FieldReal(self,"N285",0,"","","","",""))
        self.InsertField(FieldReal(self,"N286",0,"","","","",""))
        self.InsertField(FieldReal(self,"N287",0,"","","","",""))
        self.InsertField(FieldReal(self,"N288",0,"","","","",""))
        self.InsertField(FieldReal(self,"N289",0,"","","","",""))
        self.InsertField(FieldReal(self,"N290",0,"","","","",""))
        self.InsertField(FieldReal(self,"N291",0,"","","","",""))
        self.InsertField(FieldReal(self,"N292",0,"","","","",""))
        self.InsertField(FieldReal(self,"N293",0,"","","","",""))
        self.InsertField(FieldReal(self,"N294",0,"","","","",""))
        self.InsertField(FieldReal(self,"N295",0,"","","","",""))
        self.InsertField(FieldReal(self,"N296",0,"","","","",""))
        self.InsertField(FieldReal(self,"N297",0,"","","","",""))
        self.InsertField(FieldReal(self,"N298",0,"","","","",""))
        self.InsertField(FieldReal(self,"N299",0,"","","","",""))
        self.InsertField(FieldReal(self,"N300",0,"","","","",""))
        self.InsertField(FieldReal(self,"N301",0,"","","","",""))
        self.InsertField(FieldReal(self,"N302",0,"","","","",""))
        self.InsertField(FieldReal(self,"N303",0,"","","","",""))
        self.InsertField(FieldReal(self,"N304",0,"","","","",""))
        self.InsertField(FieldReal(self,"N305",0,"","","","",""))
        self.InsertField(FieldReal(self,"N306",0,"","","","",""))
        self.InsertField(FieldReal(self,"N307",0,"","","","",""))
        self.InsertField(FieldReal(self,"N308",0,"","","","",""))
        self.InsertField(FieldReal(self,"N309",0,"","","","",""))
        self.InsertField(FieldReal(self,"N310",0,"","","","",""))
        self.InsertField(FieldReal(self,"N311",0,"","","","",""))
        self.InsertField(FieldReal(self,"N312",0,"","","","",""))
        self.InsertField(FieldReal(self,"N313",0,"","","","",""))
        self.InsertField(FieldReal(self,"N314",0,"","","","",""))
        self.InsertField(FieldReal(self,"N315",0,"","","","",""))
        self.InsertField(FieldReal(self,"N316",0,"","","","",""))
        self.InsertField(FieldReal(self,"N317",0,"","","","",""))
        self.InsertField(FieldReal(self,"N318",0,"","","","",""))
        self.InsertField(FieldReal(self,"N319",0,"","","","",""))
        self.InsertField(FieldReal(self,"N320",0,"","","","",""))
        self.InsertField(FieldReal(self,"N321",0,"","","","",""))
        self.InsertField(FieldReal(self,"N322",0,"","","","",""))
        self.InsertField(FieldReal(self,"N323",0,"","","","",""))
        self.InsertField(FieldReal(self,"N324",0,"","","","",""))
        self.InsertField(FieldReal(self,"N325",0,"","","","",""))
        self.InsertField(FieldReal(self,"N326",0,"","","","",""))
        self.InsertField(FieldReal(self,"N327",0,"","","","",""))
        self.InsertField(FieldReal(self,"N328",0,"","","","",""))
        self.InsertField(FieldReal(self,"N329",0,"","","","",""))
        self.InsertField(FieldReal(self,"N330",0,"","","","",""))
        self.InsertField(FieldReal(self,"N331",0,"","","","",""))
        self.InsertField(FieldReal(self,"N332",0,"","","","",""))
        self.InsertField(FieldReal(self,"N333",0,"","","","",""))
        self.InsertField(FieldReal(self,"N334",0,"","","","",""))
        self.InsertField(FieldReal(self,"N335",0,"","","","",""))
        self.InsertField(FieldReal(self,"N336",0,"","","","",""))
        self.InsertField(FieldReal(self,"N337",0,"","","","",""))
        self.InsertField(FieldReal(self,"N338",0,"","","","",""))
        self.InsertField(FieldReal(self,"N339",0,"","","","",""))
        self.InsertField(FieldReal(self,"N340",0,"","","","",""))
        self.InsertField(FieldReal(self,"N341",0,"","","","",""))
        self.InsertField(FieldReal(self,"N342",0,"","","","",""))
        self.InsertField(FieldReal(self,"N343",0,"","","","",""))
        self.InsertField(FieldReal(self,"N344",0,"","","","",""))
        self.InsertField(FieldReal(self,"N345",0,"","","","",""))
        self.InsertField(FieldReal(self,"N346",0,"","","","",""))
        self.InsertField(FieldReal(self,"N347",0,"","","","",""))
        self.InsertField(FieldReal(self,"N348",0,"","","","",""))
        self.InsertField(FieldReal(self,"N349",0,"","","","",""))
        self.InsertField(FieldReal(self,"N350",0,"","","","",""))
        self.InsertField(FieldReal(self,"N351",0,"","","","",""))
        self.InsertField(FieldReal(self,"N352",0,"","","","",""))
        self.InsertField(FieldReal(self,"N353",0,"","","","",""))
        self.InsertField(FieldReal(self,"N354",0,"","","","",""))
        self.InsertField(FieldReal(self,"N355",0,"","","","",""))
        self.InsertField(FieldReal(self,"N356",0,"","","","",""))
        self.InsertField(FieldReal(self,"N357",0,"","","","",""))
        self.InsertField(FieldReal(self,"N358",0,"","","","",""))
        self.InsertField(FieldReal(self,"N359",0,"","","","",""))
        self.InsertField(FieldReal(self,"N360",0,"","","","",""))
        self.InsertField(FieldReal(self,"N361",0,"","","","",""))
        self.InsertField(FieldReal(self,"N362",0,"","","","",""))
        self.InsertField(FieldReal(self,"N363",0,"","","","",""))
        self.InsertField(FieldReal(self,"N364",0,"","","","",""))
        self.InsertField(FieldReal(self,"N365",0,"","","","",""))
        self.InsertField(FieldReal(self,"N366",0,"","","","",""))
        self.InsertField(FieldReal(self,"N367",0,"","","","",""))
        self.InsertField(FieldReal(self,"N368",0,"","","","",""))
        self.InsertField(FieldReal(self,"N369",0,"","","","",""))
        self.InsertField(FieldReal(self,"N370",0,"","","","",""))
        self.InsertField(FieldReal(self,"N371",0,"","","","",""))
        self.InsertField(FieldReal(self,"N372",0,"","","","",""))
        self.InsertField(FieldReal(self,"N373",0,"","","","",""))
        self.InsertField(FieldReal(self,"N374",0,"","","","",""))
        self.InsertField(FieldReal(self,"N375",0,"","","","",""))
        self.InsertField(FieldReal(self,"N376",0,"","","","",""))
        self.InsertField(FieldReal(self,"N377",0,"","","","",""))
        self.InsertField(FieldReal(self,"N378",0,"","","","",""))
        self.InsertField(FieldReal(self,"N379",0,"","","","",""))
        self.InsertField(FieldReal(self,"N380",0,"","","","",""))
        self.InsertField(FieldReal(self,"N381",0,"","","","",""))
        self.InsertField(FieldReal(self,"N382",0,"","","","",""))
        self.InsertField(FieldReal(self,"N383",0,"","","","",""))
        self.InsertField(FieldReal(self,"N384",0,"","","","",""))
        self.InsertField(FieldReal(self,"N385",0,"","","","",""))
        self.InsertField(FieldReal(self,"N386",0,"","","","",""))
        self.InsertField(FieldReal(self,"N387",0,"","","","",""))
        self.InsertField(FieldReal(self,"N388",0,"","","","",""))
        self.InsertField(FieldReal(self,"N389",0,"","","","",""))
        self.InsertField(FieldReal(self,"N390",0,"","","","",""))
        self.InsertField(FieldReal(self,"N391",0,"","","","",""))
        self.InsertField(FieldReal(self,"N392",0,"","","","",""))
        self.InsertField(FieldReal(self,"N393",0,"","","","",""))
        self.InsertField(FieldReal(self,"N394",0,"","","","",""))
        self.InsertField(FieldReal(self,"N395",0,"","","","",""))
        self.InsertField(FieldReal(self,"N396",0,"","","","",""))
        self.InsertField(FieldReal(self,"N397",0,"","","","",""))
        self.InsertField(FieldReal(self,"N398",0,"","","","",""))
        self.InsertField(FieldReal(self,"N399",0,"","","","",""))
        self.InsertField(FieldReal(self,"N400",0,"","","","",""))
        self.InsertField(FieldReal(self,"N401",0,"","","","",""))
        self.InsertField(FieldReal(self,"N402",0,"","","","",""))
        self.InsertField(FieldReal(self,"N403",0,"","","","",""))
        self.InsertField(FieldReal(self,"N404",0,"","","","",""))
        self.InsertField(FieldReal(self,"N405",0,"","","","",""))
        self.InsertField(FieldReal(self,"N406",0,"","","","",""))
        self.InsertField(FieldReal(self,"N407",0,"","","","",""))
        self.InsertField(FieldReal(self,"N408",0,"","","","",""))
        self.InsertField(FieldReal(self,"N409",0,"","","","",""))
        self.InsertField(FieldReal(self,"N410",0,"","","","",""))
        self.InsertField(FieldReal(self,"N411",0,"","","","",""))
        self.InsertField(FieldReal(self,"N412",0,"","","","",""))
        self.InsertField(FieldReal(self,"N413",0,"","","","",""))
        self.InsertField(FieldReal(self,"N414",0,"","","","",""))
        self.InsertField(FieldReal(self,"N415",0,"","","","",""))
        self.InsertField(FieldReal(self,"N416",0,"","","","",""))
        self.InsertField(FieldReal(self,"N417",0,"","","","",""))
        self.InsertField(FieldReal(self,"N418",0,"","","","",""))
        self.InsertField(FieldReal(self,"N419",0,"","","","",""))
        self.InsertField(FieldReal(self,"N420",0,"","","","",""))
        self.InsertField(FieldReal(self,"N421",0,"","","","",""))
        self.InsertField(FieldReal(self,"N422",0,"","","","",""))
        self.InsertField(FieldReal(self,"N423",0,"","","","",""))
        self.InsertField(FieldReal(self,"N424",0,"","","","",""))
        self.InsertField(FieldReal(self,"N425",0,"","","","",""))
        self.InsertField(FieldReal(self,"N426",0,"","","","",""))
        self.InsertField(FieldReal(self,"N427",0,"","","","",""))
        self.InsertField(FieldReal(self,"N428",0,"","","","",""))
        self.InsertField(FieldReal(self,"N429",0,"","","","",""))
        self.InsertField(FieldReal(self,"N430",0,"","","","",""))
        self.InsertField(FieldReal(self,"N431",0,"","","","",""))
        self.InsertField(FieldReal(self,"N432",0,"","","","",""))
        self.InsertField(FieldReal(self,"N433",0,"","","","",""))
        self.InsertField(FieldReal(self,"N434",0,"","","","",""))
        self.InsertField(FieldReal(self,"N435",0,"","","","",""))
        self.InsertField(FieldReal(self,"N436",0,"","","","",""))
        self.InsertField(FieldReal(self,"N437",0,"","","","",""))
        self.InsertField(FieldReal(self,"N438",0,"","","","",""))
        self.InsertField(FieldReal(self,"N439",0,"","","","",""))
        self.InsertField(FieldReal(self,"N440",0,"","","","",""))
        self.InsertField(FieldReal(self,"N441",0,"","","","",""))
        self.InsertField(FieldReal(self,"N442",0,"","","","",""))
        self.InsertField(FieldReal(self,"N443",0,"","","","",""))
        self.InsertField(FieldReal(self,"N444",0,"","","","",""))
        self.InsertField(FieldReal(self,"N445",0,"","","","",""))
        self.InsertField(FieldReal(self,"N446",0,"","","","",""))
        self.InsertField(FieldReal(self,"N447",0,"","","","",""))
        self.InsertField(FieldReal(self,"N448",0,"","","","",""))
        self.InsertField(FieldReal(self,"N449",0,"","","","",""))
        self.InsertField(FieldReal(self,"N450",0,"","","","",""))
        self.InsertField(FieldReal(self,"N451",0,"","","","",""))
        self.InsertField(FieldReal(self,"N452",0,"","","","",""))
        self.InsertField(FieldReal(self,"N453",0,"","","","",""))
        self.InsertField(FieldReal(self,"N454",0,"","","","",""))
        self.InsertField(FieldReal(self,"N455",0,"","","","",""))
        self.InsertField(FieldReal(self,"N456",0,"","","","",""))
        self.InsertField(FieldReal(self,"N457",0,"","","","",""))
        self.InsertField(FieldReal(self,"N458",0,"","","","",""))
        self.InsertField(FieldReal(self,"N459",0,"","","","",""))
        self.InsertField(FieldReal(self,"N460",0,"","","","",""))
        self.InsertField(FieldReal(self,"N461",0,"","","","",""))
        self.InsertField(FieldReal(self,"N462",0,"","","","",""))
        self.InsertField(FieldReal(self,"N463",0,"","","","",""))
        self.InsertField(FieldReal(self,"N464",0,"","","","",""))
        self.InsertField(FieldReal(self,"N465",0,"","","","",""))
        self.InsertField(FieldReal(self,"N466",0,"","","","",""))
        self.InsertField(FieldReal(self,"N467",0,"","","","",""))
        self.InsertField(FieldReal(self,"N468",0,"","","","",""))
        self.InsertField(FieldReal(self,"N469",0,"","","","",""))
        self.InsertField(FieldReal(self,"N470",0,"","","","",""))
        self.InsertField(FieldReal(self,"N471",0,"","","","",""))
        self.InsertField(FieldReal(self,"N472",0,"","","","",""))
        self.InsertField(FieldReal(self,"N473",0,"","","","",""))
        self.InsertField(FieldReal(self,"N474",0,"","","","",""))
        self.InsertField(FieldReal(self,"N475",0,"","","","",""))
        self.InsertField(FieldReal(self,"N476",0,"","","","",""))
        self.InsertField(FieldReal(self,"N477",0,"","","","",""))
        self.InsertField(FieldReal(self,"N478",0,"","","","",""))
        self.InsertField(FieldReal(self,"N479",0,"","","","",""))
        self.InsertField(FieldReal(self,"N480",0,"","","","",""))
        self.InsertField(FieldReal(self,"N481",0,"","","","",""))
        self.InsertField(FieldReal(self,"N482",0,"","","","",""))
        self.InsertField(FieldReal(self,"N483",0,"","","","",""))
        self.InsertField(FieldReal(self,"N484",0,"","","","",""))
        self.InsertField(FieldReal(self,"N485",0,"","","","",""))
        self.InsertField(FieldReal(self,"N486",0,"","","","",""))
        self.InsertField(FieldReal(self,"N487",0,"","","","",""))
        self.InsertField(FieldReal(self,"N488",0,"","","","",""))
        self.InsertField(FieldReal(self,"N489",0,"","","","",""))
        self.InsertField(FieldReal(self,"N490",0,"","","","",""))
        self.InsertField(FieldReal(self,"N491",0,"","","","",""))
        self.InsertField(FieldReal(self,"N492",0,"","","","",""))
        self.InsertField(FieldReal(self,"N493",0,"","","","",""))
        self.InsertField(FieldReal(self,"N494",0,"","","","",""))
        self.InsertField(FieldReal(self,"N495",0,"","","","",""))
        self.InsertField(FieldReal(self,"N496",0,"","","","",""))
        self.InsertField(FieldReal(self,"N497",0,"","","","",""))
        self.InsertField(FieldReal(self,"N498",0,"","","","",""))
        self.InsertField(FieldReal(self,"N499",0,"","","","",""))
        self.InsertField(FieldReal(self,"N500",0,"","","","",""))
        self.InsertField(FieldReal(self,"N501",0,"","","","",""))
        self.InsertField(FieldReal(self,"N502",0,"","","","",""))
        self.InsertField(FieldReal(self,"N503",0,"","","","",""))
        self.InsertField(FieldReal(self,"N504",0,"","","","",""))
        self.InsertField(FieldReal(self,"N505",0,"","","","",""))
        self.InsertField(FieldReal(self,"N506",0,"","","","",""))
        self.InsertField(FieldReal(self,"N507",0,"","","","",""))
        self.InsertField(FieldReal(self,"N508",0,"","","","",""))
        self.InsertField(FieldReal(self,"N509",0,"","","","",""))
        self.InsertField(FieldReal(self,"N510",0,"","","","",""))
        self.InsertField(FieldReal(self,"N511",0,"","","","",""))
        self.InsertField(FieldReal(self,"N512",0,"","","","",""))
        self.InsertField(FieldReal(self,"N513",0,"","","","",""))
        self.InsertField(FieldReal(self,"N514",0,"","","","",""))
        self.InsertField(FieldReal(self,"N515",0,"","","","",""))
        self.InsertField(FieldReal(self,"N516",0,"","","","",""))
        self.InsertField(FieldReal(self,"N517",0,"","","","",""))
        self.InsertField(FieldReal(self,"N518",0,"","","","",""))
        self.InsertField(FieldReal(self,"N519",0,"","","","",""))
        self.InsertField(FieldReal(self,"N520",0,"","","","",""))
        self.InsertField(FieldReal(self,"N521",0,"","","","",""))
        self.InsertField(FieldReal(self,"N522",0,"","","","",""))
        self.InsertField(FieldReal(self,"N523",0,"","","","",""))
        self.InsertField(FieldReal(self,"N524",0,"","","","",""))
        self.InsertField(FieldReal(self,"N525",0,"","","","",""))
        self.InsertField(FieldReal(self,"N526",0,"","","","",""))
        self.InsertField(FieldReal(self,"N527",0,"","","","",""))
        self.InsertField(FieldReal(self,"N528",0,"","","","",""))
        self.InsertField(FieldReal(self,"N529",0,"","","","",""))
        self.InsertField(FieldReal(self,"N530",0,"","","","",""))
        self.InsertField(FieldReal(self,"N531",0,"","","","",""))
        self.InsertField(FieldReal(self,"N532",0,"","","","",""))
        self.InsertField(FieldReal(self,"N533",0,"","","","",""))
        self.InsertField(FieldReal(self,"N534",0,"","","","",""))
        self.InsertField(FieldReal(self,"N535",0,"","","","",""))
        self.InsertField(FieldReal(self,"N536",0,"","","","",""))
        self.InsertField(FieldReal(self,"N537",0,"","","","",""))
        self.InsertField(FieldReal(self,"N538",0,"","","","",""))
        self.InsertField(FieldReal(self,"N539",0,"","","","",""))
        self.InsertField(FieldReal(self,"N540",0,"","","","",""))
        self.InsertField(FieldReal(self,"N541",0,"","","","",""))
        self.InsertField(FieldReal(self,"N542",0,"","","","",""))
        self.InsertField(FieldReal(self,"N543",0,"","","","",""))
        self.InsertField(FieldReal(self,"N544",0,"","","","",""))
        self.InsertField(FieldReal(self,"N545",0,"","","","",""))
        self.InsertField(FieldReal(self,"N546",0,"","","","",""))
        self.InsertField(FieldReal(self,"N547",0,"","","","",""))
        self.InsertField(FieldReal(self,"N548",0,"","","","",""))
        self.InsertField(FieldReal(self,"N549",0,"","","","",""))
        self.InsertField(FieldReal(self,"N550",0,"","","","",""))
        self.InsertField(FieldReal(self,"N551",0,"","","","",""))
        self.InsertField(FieldReal(self,"N552",0,"","","","",""))
        self.InsertField(FieldReal(self,"N553",0,"","","","",""))
        self.InsertField(FieldReal(self,"N554",0,"","","","",""))
        self.InsertField(FieldReal(self,"N555",0,"","","","",""))
        self.InsertField(FieldReal(self,"N556",0,"","","","",""))
        self.InsertField(FieldReal(self,"N557",0,"","","","",""))
        self.InsertField(FieldReal(self,"N558",0,"","","","",""))
        self.InsertField(FieldReal(self,"N559",0,"","","","",""))
        self.InsertField(FieldReal(self,"N560",0,"","","","",""))
        self.InsertField(FieldReal(self,"N561",0,"","","","",""))
        self.InsertField(FieldReal(self,"N562",0,"","","","",""))
        self.InsertField(FieldReal(self,"N563",0,"","","","",""))
        self.InsertField(FieldReal(self,"N564",0,"","","","",""))
        self.InsertField(FieldReal(self,"N565",0,"","","","",""))
        self.InsertField(FieldReal(self,"N566",0,"","","","",""))
        self.InsertField(FieldReal(self,"N567",0,"","","","",""))
        self.InsertField(FieldReal(self,"N568",0,"","","","",""))
        self.InsertField(FieldReal(self,"N569",0,"","","","",""))
        self.InsertField(FieldReal(self,"N570",0,"","","","",""))
        self.InsertField(FieldReal(self,"N571",0,"","","","",""))
        self.InsertField(FieldReal(self,"N572",0,"","","","",""))
        self.InsertField(FieldReal(self,"N573",0,"","","","",""))
        self.InsertField(FieldReal(self,"N574",0,"","","","",""))
        self.InsertField(FieldReal(self,"N575",0,"","","","",""))
        self.InsertField(FieldReal(self,"N576",0,"","","","",""))
        self.InsertField(FieldReal(self,"N577",0,"","","","",""))
        self.InsertField(FieldReal(self,"N578",0,"","","","",""))
        self.InsertField(FieldReal(self,"N579",0,"","","","",""))
        self.InsertField(FieldReal(self,"N580",0,"","","","",""))
        self.InsertField(FieldReal(self,"N581",0,"","","","",""))
        self.InsertField(FieldReal(self,"N582",0,"","","","",""))
        self.InsertField(FieldReal(self,"N583",0,"","","","",""))
        self.InsertField(FieldReal(self,"N584",0,"","","","",""))
        self.InsertField(FieldReal(self,"N585",0,"","","","",""))
        self.InsertField(FieldReal(self,"N586",0,"","","","",""))
        self.InsertField(FieldReal(self,"N587",0,"","","","",""))
        self.InsertField(FieldReal(self,"N588",0,"","","","",""))
        self.InsertField(FieldReal(self,"N589",0,"","","","",""))
        self.InsertField(FieldReal(self,"N590",0,"","","","",""))
        self.InsertField(FieldReal(self,"N591",0,"","","","",""))
        self.InsertField(FieldReal(self,"N592",0,"","","","",""))
        self.InsertField(FieldReal(self,"N593",0,"","","","",""))
        self.InsertField(FieldReal(self,"N594",0,"","","","",""))
        self.InsertField(FieldReal(self,"N595",0,"","","","",""))
        self.InsertField(FieldReal(self,"N596",0,"","","","",""))
        self.InsertField(FieldReal(self,"N597",0,"","","","",""))
        self.InsertField(FieldReal(self,"N598",0,"","","","",""))
        self.InsertField(FieldReal(self,"N599",0,"","","","",""))
        self.InsertField(FieldReal(self,"N600",0,"","","","",""))
        self.InsertField(FieldReal(self,"N601",0,"","","","",""))
        self.InsertField(FieldReal(self,"N602",0,"","","","",""))
        self.InsertField(FieldReal(self,"N603",0,"","","","",""))
        self.InsertField(FieldReal(self,"N604",0,"","","","",""))
        self.InsertField(FieldReal(self,"N605",0,"","","","",""))
        self.InsertField(FieldReal(self,"N606",0,"","","","",""))
        self.InsertField(FieldReal(self,"N607",0,"","","","",""))
        self.InsertField(FieldReal(self,"N608",0,"","","","",""))
        self.InsertField(FieldReal(self,"N609",0,"","","","",""))
        self.InsertField(FieldReal(self,"N610",0,"","","","",""))
        self.InsertField(FieldReal(self,"N611",0,"","","","",""))
        self.InsertField(FieldReal(self,"N612",0,"","","","",""))
        self.InsertField(FieldReal(self,"N613",0,"","","","",""))
        self.InsertField(FieldReal(self,"N614",0,"","","","",""))
        self.InsertField(FieldReal(self,"N615",0,"","","","",""))
        self.InsertField(FieldReal(self,"N616",0,"","","","",""))
        self.InsertField(FieldReal(self,"N617",0,"","","","",""))
        self.InsertField(FieldReal(self,"N618",0,"","","","",""))
        self.InsertField(FieldReal(self,"N619",0,"","","","",""))
        self.InsertField(FieldReal(self,"N620",0,"","","","",""))
        self.InsertField(FieldReal(self,"N621",0,"","","","",""))
        self.InsertField(FieldReal(self,"N622",0,"","","","",""))
        self.InsertField(FieldReal(self,"N623",0,"","","","",""))
        self.InsertField(FieldReal(self,"N624",0,"","","","",""))
        self.InsertField(FieldReal(self,"N625",0,"","","","",""))
        self.InsertField(FieldReal(self,"N626",0,"","","","",""))
        self.InsertField(FieldReal(self,"N627",0,"","","","",""))
        self.InsertField(FieldReal(self,"N628",0,"","","","",""))
        self.InsertField(FieldReal(self,"N629",0,"","","","",""))
        self.InsertField(FieldReal(self,"N630",0,"","","","",""))
        self.InsertField(FieldReal(self,"N631",0,"","","","",""))
        self.InsertField(FieldReal(self,"N632",0,"","","","",""))
        self.InsertField(FieldReal(self,"N633",0,"","","","",""))
        self.InsertField(FieldReal(self,"N634",0,"","","","",""))
        self.InsertField(FieldReal(self,"N635",0,"","","","",""))
        self.InsertField(FieldReal(self,"N636",0,"","","","",""))
        self.InsertField(FieldReal(self,"N637",0,"","","","",""))
        self.InsertField(FieldReal(self,"N638",0,"","","","",""))
        self.InsertField(FieldReal(self,"N639",0,"","","","",""))
        self.InsertField(FieldReal(self,"N640",0,"","","","",""))
        self.InsertField(FieldReal(self,"N641",0,"","","","",""))
        self.InsertField(FieldReal(self,"N642",0,"","","","",""))
        self.InsertField(FieldReal(self,"N643",0,"","","","",""))
        self.InsertField(FieldReal(self,"N644",0,"","","","",""))
        self.InsertField(FieldReal(self,"N645",0,"","","","",""))
        self.InsertField(FieldReal(self,"N646",0,"","","","",""))
        self.InsertField(FieldReal(self,"N647",0,"","","","",""))
        self.InsertField(FieldReal(self,"N648",0,"","","","",""))
        self.InsertField(FieldReal(self,"N649",0,"","","","",""))
        self.InsertField(FieldReal(self,"N650",0,"","","","",""))
        self.InsertField(FieldReal(self,"N651",0,"","","","",""))
        self.InsertField(FieldReal(self,"N652",0,"","","","",""))
        self.InsertField(FieldReal(self,"N653",0,"","","","",""))
        self.InsertField(FieldReal(self,"N654",0,"","","","",""))
        self.InsertField(FieldReal(self,"N655",0,"","","","",""))
        self.InsertField(FieldReal(self,"N656",0,"","","","",""))
        self.InsertField(FieldReal(self,"N657",0,"","","","",""))
        self.InsertField(FieldReal(self,"N658",0,"","","","",""))
        self.InsertField(FieldReal(self,"N659",0,"","","","",""))
        self.InsertField(FieldReal(self,"N660",0,"","","","",""))
        self.InsertField(FieldReal(self,"N661",0,"","","","",""))
        self.InsertField(FieldReal(self,"N662",0,"","","","",""))
        self.InsertField(FieldReal(self,"N663",0,"","","","",""))
        self.InsertField(FieldReal(self,"N664",0,"","","","",""))
        self.InsertField(FieldReal(self,"N665",0,"","","","",""))
        self.InsertField(FieldReal(self,"N666",0,"","","","",""))
        self.InsertField(FieldReal(self,"N667",0,"","","","",""))
        self.InsertField(FieldReal(self,"N668",0,"","","","",""))
        self.InsertField(FieldReal(self,"N669",0,"","","","",""))
        self.InsertField(FieldReal(self,"N670",0,"","","","",""))
        self.InsertField(FieldReal(self,"N671",0,"","","","",""))
        self.InsertField(FieldReal(self,"N672",0,"","","","",""))
        self.InsertField(FieldReal(self,"N673",0,"","","","",""))
        self.InsertField(FieldReal(self,"N674",0,"","","","",""))
        self.InsertField(FieldReal(self,"N675",0,"","","","",""))
        self.InsertField(FieldReal(self,"N676",0,"","","","",""))
        self.InsertField(FieldReal(self,"N677",0,"","","","",""))
        self.InsertField(FieldReal(self,"N678",0,"","","","",""))
        self.InsertField(FieldReal(self,"N679",0,"","","","",""))
        self.InsertField(FieldReal(self,"N680",0,"","","","",""))
        self.InsertField(FieldReal(self,"N681",0,"","","","",""))
        self.InsertField(FieldReal(self,"N682",0,"","","","",""))
        self.InsertField(FieldReal(self,"N683",0,"","","","",""))
        self.InsertField(FieldReal(self,"N684",0,"","","","",""))
        self.InsertField(FieldReal(self,"N685",0,"","","","",""))
        self.InsertField(FieldReal(self,"N686",0,"","","","",""))
        self.InsertField(FieldReal(self,"N687",0,"","","","",""))
        self.InsertField(FieldReal(self,"N688",0,"","","","",""))
        self.InsertField(FieldReal(self,"N689",0,"","","","",""))
        self.InsertField(FieldReal(self,"N690",0,"","","","",""))
        self.InsertField(FieldReal(self,"N691",0,"","","","",""))
        self.InsertField(FieldReal(self,"N692",0,"","","","",""))
        self.InsertField(FieldReal(self,"N693",0,"","","","",""))
        self.InsertField(FieldReal(self,"N694",0,"","","","",""))
        self.InsertField(FieldReal(self,"N695",0,"","","","",""))
        self.InsertField(FieldReal(self,"N696",0,"","","","",""))
        self.InsertField(FieldReal(self,"N697",0,"","","","",""))
        self.InsertField(FieldReal(self,"N698",0,"","","","",""))
        self.InsertField(FieldReal(self,"N699",0,"","","","",""))
        self.InsertField(FieldReal(self,"N700",0,"","","","",""))
        self.InsertField(FieldReal(self,"N701",0,"","","","",""))
        self.InsertField(FieldReal(self,"N702",0,"","","","",""))
        self.InsertField(FieldReal(self,"N703",0,"","","","",""))
        self.InsertField(FieldReal(self,"N704",0,"","","","",""))
        self.InsertField(FieldReal(self,"N705",0,"","","","",""))
        self.InsertField(FieldReal(self,"N706",0,"","","","",""))
        self.InsertField(FieldReal(self,"N707",0,"","","","",""))
        self.InsertField(FieldReal(self,"N708",0,"","","","",""))
        self.InsertField(FieldReal(self,"N709",0,"","","","",""))
        self.InsertField(FieldReal(self,"N710",0,"","","","",""))
        self.InsertField(FieldReal(self,"N711",0,"","","","",""))
        self.InsertField(FieldReal(self,"N712",0,"","","","",""))
        self.InsertField(FieldReal(self,"N713",0,"","","","",""))
        self.InsertField(FieldReal(self,"N714",0,"","","","",""))
        self.InsertField(FieldReal(self,"N715",0,"","","","",""))
        self.InsertField(FieldReal(self,"N716",0,"","","","",""))
        self.InsertField(FieldReal(self,"N717",0,"","","","",""))
        self.InsertField(FieldReal(self,"N718",0,"","","","",""))
        self.InsertField(FieldReal(self,"N719",0,"","","","",""))
        self.InsertField(FieldReal(self,"N720",0,"","","","",""))
        self.InsertField(FieldReal(self,"N721",0,"","","","",""))
        self.InsertField(FieldReal(self,"N722",0,"","","","",""))
        self.InsertField(FieldReal(self,"N723",0,"","","","",""))
        self.InsertField(FieldReal(self,"N724",0,"","","","",""))
        self.InsertField(FieldReal(self,"N725",0,"","","","",""))
        self.InsertField(FieldReal(self,"N726",0,"","","","",""))
        self.InsertField(FieldReal(self,"N727",0,"","","","",""))
        self.InsertField(FieldReal(self,"N728",0,"","","","",""))
        self.InsertField(FieldReal(self,"N729",0,"","","","",""))
        self.InsertField(FieldReal(self,"N730",0,"","","","",""))
        self.InsertField(FieldReal(self,"N731",0,"","","","",""))
        self.InsertField(FieldReal(self,"N732",0,"","","","",""))
        self.InsertField(FieldReal(self,"N733",0,"","","","",""))
        self.InsertField(FieldReal(self,"N734",0,"","","","",""))
        self.InsertField(FieldReal(self,"N735",0,"","","","",""))
        self.InsertField(FieldReal(self,"N736",0,"","","","",""))
        self.InsertField(FieldReal(self,"N737",0,"","","","",""))
        self.InsertField(FieldReal(self,"N738",0,"","","","",""))
        self.InsertField(FieldReal(self,"N739",0,"","","","",""))
        self.InsertField(FieldReal(self,"N740",0,"","","","",""))
        self.InsertField(FieldReal(self,"N741",0,"","","","",""))
        self.InsertField(FieldReal(self,"N742",0,"","","","",""))
        self.InsertField(FieldReal(self,"N743",0,"","","","",""))
        self.InsertField(FieldReal(self,"N744",0,"","","","",""))
        self.InsertField(FieldReal(self,"N745",0,"","","","",""))
        self.InsertField(FieldReal(self,"N746",0,"","","","",""))
        self.InsertField(FieldReal(self,"N747",0,"","","","",""))
        self.InsertField(FieldReal(self,"N748",0,"","","","",""))
        self.InsertField(FieldReal(self,"N749",0,"","","","",""))
        self.InsertField(FieldReal(self,"N750",0,"","","","",""))
        self.InsertField(FieldReal(self,"N751",0,"","","","",""))
        self.InsertField(FieldReal(self,"N752",0,"","","","",""))
        self.InsertField(FieldReal(self,"N753",0,"","","","",""))
        self.InsertField(FieldReal(self,"N754",0,"","","","",""))
        self.InsertField(FieldReal(self,"N755",0,"","","","",""))
        self.InsertField(FieldReal(self,"N756",0,"","","","",""))
        self.InsertField(FieldReal(self,"N757",0,"","","","",""))
        self.InsertField(FieldReal(self,"N758",0,"","","","",""))
        self.InsertField(FieldReal(self,"N759",0,"","","","",""))
        self.InsertField(FieldReal(self,"N760",0,"","","","",""))
        self.InsertField(FieldReal(self,"N761",0,"","","","",""))
        self.InsertField(FieldReal(self,"N762",0,"","","","",""))
        self.InsertField(FieldReal(self,"N763",0,"","","","",""))
        self.InsertField(FieldReal(self,"N764",0,"","","","",""))
        self.InsertField(FieldReal(self,"N765",0,"","","","",""))
        self.InsertField(FieldReal(self,"N766",0,"","","","",""))
        self.InsertField(FieldReal(self,"N767",0,"","","","",""))
        self.InsertField(FieldReal(self,"N768",0,"","","","",""))
        self.InsertField(FieldReal(self,"N769",0,"","","","",""))
        self.InsertField(FieldReal(self,"N770",0,"","","","",""))
        self.InsertField(FieldReal(self,"N771",0,"","","","",""))
        self.InsertField(FieldReal(self,"N772",0,"","","","",""))
        self.InsertField(FieldReal(self,"N773",0,"","","","",""))
        self.InsertField(FieldReal(self,"N774",0,"","","","",""))
        self.InsertField(FieldReal(self,"N775",0,"","","","",""))
        self.InsertField(FieldReal(self,"N776",0,"","","","",""))
        self.InsertField(FieldReal(self,"N777",0,"","","","",""))
        self.InsertField(FieldReal(self,"N778",0,"","","","",""))
        self.InsertField(FieldReal(self,"N779",0,"","","","",""))
        self.InsertField(FieldReal(self,"N780",0,"","","","",""))
        self.InsertField(FieldReal(self,"N781",0,"","","","",""))
        self.InsertField(FieldReal(self,"N782",0,"","","","",""))
        self.InsertField(FieldReal(self,"N783",0,"","","","",""))
        self.InsertField(FieldReal(self,"N784",0,"","","","",""))
        self.InsertField(FieldReal(self,"N785",0,"","","","",""))
        self.InsertField(FieldReal(self,"N786",0,"","","","",""))
        self.InsertField(FieldReal(self,"N787",0,"","","","",""))
        self.InsertField(FieldReal(self,"N788",0,"","","","",""))
        self.InsertField(FieldReal(self,"N789",0,"","","","",""))
        self.InsertField(FieldReal(self,"N790",0,"","","","",""))
        self.InsertField(FieldReal(self,"N791",0,"","","","",""))
        self.InsertField(FieldReal(self,"N792",0,"","","","",""))
        self.InsertField(FieldReal(self,"N793",0,"","","","",""))
        self.InsertField(FieldReal(self,"N794",0,"","","","",""))
        self.InsertField(FieldReal(self,"N795",0,"","","","",""))
        self.InsertField(FieldReal(self,"N796",0,"","","","",""))
        self.InsertField(FieldReal(self,"N797",0,"","","","",""))
        self.InsertField(FieldReal(self,"N798",0,"","","","",""))
        self.InsertField(FieldReal(self,"N799",0,"","","","",""))
        self.InsertField(FieldReal(self,"N800",0,"","","","",""))
        self.InsertField(FieldReal(self,"N801",0,"","","","",""))
        self.InsertField(FieldReal(self,"N802",0,"","","","",""))
        self.InsertField(FieldReal(self,"N803",0,"","","","",""))
        self.InsertField(FieldReal(self,"N804",0,"","","","",""))
        self.InsertField(FieldReal(self,"N805",0,"","","","",""))
        self.InsertField(FieldReal(self,"N806",0,"","","","",""))
        self.InsertField(FieldReal(self,"N807",0,"","","","",""))
        self.InsertField(FieldReal(self,"N808",0,"","","","",""))
        self.InsertField(FieldReal(self,"N809",0,"","","","",""))
        self.InsertField(FieldReal(self,"N810",0,"","","","",""))
        self.InsertField(FieldReal(self,"N811",0,"","","","",""))
        self.InsertField(FieldReal(self,"N812",0,"","","","",""))
        self.InsertField(FieldReal(self,"N813",0,"","","","",""))
        self.InsertField(FieldReal(self,"N814",0,"","","","",""))
        self.InsertField(FieldReal(self,"N815",0,"","","","",""))
        self.InsertField(FieldReal(self,"N816",0,"","","","",""))
        self.InsertField(FieldReal(self,"N817",0,"","","","",""))
        self.InsertField(FieldReal(self,"N818",0,"","","","",""))
        self.InsertField(FieldReal(self,"N819",0,"","","","",""))
        self.InsertField(FieldReal(self,"N820",0,"","","","",""))
        self.InsertField(FieldReal(self,"N821",0,"","","","",""))
        self.InsertField(FieldReal(self,"N822",0,"","","","",""))
        self.InsertField(FieldReal(self,"N823",0,"","","","",""))
        self.InsertField(FieldReal(self,"N824",0,"","","","",""))
        self.InsertField(FieldReal(self,"N825",0,"","","","",""))
        self.InsertField(FieldReal(self,"N826",0,"","","","",""))
        self.InsertField(FieldReal(self,"N827",0,"","","","",""))
        self.InsertField(FieldReal(self,"N828",0,"","","","",""))
        self.InsertField(FieldReal(self,"N829",0,"","","","",""))
        self.InsertField(FieldReal(self,"N830",0,"","","","",""))
        self.InsertField(FieldReal(self,"N831",0,"","","","",""))
        self.InsertField(FieldReal(self,"N832",0,"","","","",""))
        self.InsertField(FieldReal(self,"N833",0,"","","","",""))
        self.InsertField(FieldReal(self,"N834",0,"","","","",""))
        self.InsertField(FieldReal(self,"N835",0,"","","","",""))
        self.InsertField(FieldReal(self,"N836",0,"","","","",""))
        self.InsertField(FieldReal(self,"N837",0,"","","","",""))
        self.InsertField(FieldReal(self,"N838",0,"","","","",""))
        self.InsertField(FieldReal(self,"N839",0,"","","","",""))
        self.InsertField(FieldReal(self,"N840",0,"","","","",""))
        self.InsertField(FieldReal(self,"N841",0,"","","","",""))
        self.InsertField(FieldReal(self,"N842",0,"","","","",""))
        self.InsertField(FieldReal(self,"N843",0,"","","","",""))
        self.InsertField(FieldReal(self,"N844",0,"","","","",""))
        self.InsertField(FieldReal(self,"N845",0,"","","","",""))
        self.InsertField(FieldReal(self,"N846",0,"","","","",""))
        self.InsertField(FieldReal(self,"N847",0,"","","","",""))
        self.InsertField(FieldReal(self,"N848",0,"","","","",""))
        self.InsertField(FieldReal(self,"N849",0,"","","","",""))
        self.InsertField(FieldReal(self,"N850",0,"","","","",""))
        self.InsertField(FieldReal(self,"N851",0,"","","","",""))
        self.InsertField(FieldReal(self,"N852",0,"","","","",""))
        self.InsertField(FieldReal(self,"N853",0,"","","","",""))
        self.InsertField(FieldReal(self,"N854",0,"","","","",""))
        self.InsertField(FieldReal(self,"N855",0,"","","","",""))
        self.InsertField(FieldReal(self,"N856",0,"","","","",""))
        self.InsertField(FieldReal(self,"N857",0,"","","","",""))
        self.InsertField(FieldReal(self,"N858",0,"","","","",""))
        self.InsertField(FieldReal(self,"N859",0,"","","","",""))
        self.InsertField(FieldReal(self,"N860",0,"","","","",""))
        self.InsertField(FieldReal(self,"N861",0,"","","","",""))
        self.InsertField(FieldReal(self,"N862",0,"","","","",""))
        self.InsertField(FieldReal(self,"N863",0,"","","","",""))
        self.InsertField(FieldReal(self,"N864",0,"","","","",""))
        self.InsertField(FieldReal(self,"N865",0,"","","","",""))
        self.InsertField(FieldReal(self,"N866",0,"","","","",""))
        self.InsertField(FieldReal(self,"N867",0,"","","","",""))
        self.InsertField(FieldReal(self,"N868",0,"","","","",""))
        self.InsertField(FieldReal(self,"N869",0,"","","","",""))
        self.InsertField(FieldReal(self,"N870",0,"","","","",""))
        self.InsertField(FieldReal(self,"N871",0,"","","","",""))
        self.InsertField(FieldReal(self,"N872",0,"","","","",""))
        self.InsertField(FieldReal(self,"N873",0,"","","","",""))
        self.InsertField(FieldReal(self,"N874",0,"","","","",""))
        self.InsertField(FieldReal(self,"N875",0,"","","","",""))
        self.InsertField(FieldReal(self,"N876",0,"","","","",""))
        self.InsertField(FieldReal(self,"N877",0,"","","","",""))
        self.InsertField(FieldReal(self,"N878",0,"","","","",""))
        self.InsertField(FieldReal(self,"N879",0,"","","","",""))
        self.InsertField(FieldReal(self,"N880",0,"","","","",""))
        self.InsertField(FieldReal(self,"N881",0,"","","","",""))
        self.InsertField(FieldReal(self,"N882",0,"","","","",""))
        self.InsertField(FieldReal(self,"N883",0,"","","","",""))
        self.InsertField(FieldReal(self,"N884",0,"","","","",""))
        self.InsertField(FieldReal(self,"N885",0,"","","","",""))
        self.InsertField(FieldReal(self,"N886",0,"","","","",""))
        self.InsertField(FieldReal(self,"N887",0,"","","","",""))
        self.InsertField(FieldReal(self,"N888",0,"","","","",""))
        self.InsertField(FieldReal(self,"N889",0,"","","","",""))
        self.InsertField(FieldReal(self,"N890",0,"","","","",""))
        self.InsertField(FieldReal(self,"N891",0,"","","","",""))
        self.InsertField(FieldReal(self,"N892",0,"","","","",""))
        self.InsertField(FieldReal(self,"N893",0,"","","","",""))
        self.InsertField(FieldReal(self,"N894",0,"","","","",""))
        self.InsertField(FieldReal(self,"N895",0,"","","","",""))
        self.InsertField(FieldReal(self,"N896",0,"","","","",""))
        self.InsertField(FieldReal(self,"N897",0,"","","","",""))
        self.InsertField(FieldReal(self,"N898",0,"","","","",""))
        self.InsertField(FieldReal(self,"N899",0,"","","","",""))
        self.InsertField(FieldReal(self,"N900",0,"","","","",""))
        self.InsertField(FieldReal(self,"N901",0,"","","","",""))
        self.InsertField(FieldReal(self,"N902",0,"","","","",""))
        self.InsertField(FieldReal(self,"N903",0,"","","","",""))
        self.InsertField(FieldReal(self,"N904",0,"","","","",""))
        self.InsertField(FieldReal(self,"N905",0,"","","","",""))
        self.InsertField(FieldReal(self,"N906",0,"","","","",""))
        self.InsertField(FieldReal(self,"N907",0,"","","","",""))
        self.InsertField(FieldReal(self,"N908",0,"","","","",""))
        self.InsertField(FieldReal(self,"N909",0,"","","","",""))
        self.InsertField(FieldReal(self,"N910",0,"","","","",""))
        self.InsertField(FieldReal(self,"N911",0,"","","","",""))
        self.InsertField(FieldReal(self,"N912",0,"","","","",""))
        self.InsertField(FieldReal(self,"N913",0,"","","","",""))
        self.InsertField(FieldReal(self,"N914",0,"","","","",""))
        self.InsertField(FieldReal(self,"N915",0,"","","","",""))
        self.InsertField(FieldReal(self,"N916",0,"","","","",""))
        self.InsertField(FieldReal(self,"N917",0,"","","","",""))
        self.InsertField(FieldReal(self,"N918",0,"","","","",""))
        self.InsertField(FieldReal(self,"N919",0,"","","","",""))
        self.InsertField(FieldReal(self,"N920",0,"","","","",""))
        self.InsertField(FieldReal(self,"N921",0,"","","","",""))
        self.InsertField(FieldReal(self,"N922",0,"","","","",""))
        self.InsertField(FieldReal(self,"N923",0,"","","","",""))
        self.InsertField(FieldReal(self,"N924",0,"","","","",""))
        self.InsertField(FieldReal(self,"N925",0,"","","","",""))
        self.InsertField(FieldReal(self,"N926",0,"","","","",""))
        self.InsertField(FieldReal(self,"N927",0,"","","","",""))
        self.InsertField(FieldReal(self,"N928",0,"","","","",""))
        self.InsertField(FieldReal(self,"N929",0,"","","","",""))
        self.InsertField(FieldReal(self,"N930",0,"","","","",""))
        self.InsertField(FieldReal(self,"N931",0,"","","","",""))
        self.InsertField(FieldReal(self,"N932",0,"","","","",""))
        self.InsertField(FieldReal(self,"N933",0,"","","","",""))
        self.InsertField(FieldReal(self,"N934",0,"","","","",""))
        self.InsertField(FieldReal(self,"N935",0,"","","","",""))
        self.InsertField(FieldReal(self,"N936",0,"","","","",""))
        self.InsertField(FieldReal(self,"N937",0,"","","","",""))
        self.InsertField(FieldReal(self,"N938",0,"","","","",""))
        self.InsertField(FieldReal(self,"N939",0,"","","","",""))
        self.InsertField(FieldReal(self,"N940",0,"","","","",""))
        self.InsertField(FieldReal(self,"N941",0,"","","","",""))
        self.InsertField(FieldReal(self,"N942",0,"","","","",""))
        self.InsertField(FieldReal(self,"N943",0,"","","","",""))
        self.InsertField(FieldReal(self,"N944",0,"","","","",""))
        self.InsertField(FieldReal(self,"N945",0,"","","","",""))
        self.InsertField(FieldReal(self,"N946",0,"","","","",""))
        self.InsertField(FieldReal(self,"N947",0,"","","","",""))
        self.InsertField(FieldReal(self,"N948",0,"","","","",""))
        self.InsertField(FieldReal(self,"N949",0,"","","","",""))
        self.InsertField(FieldReal(self,"N950",0,"","","","",""))
        self.InsertField(FieldReal(self,"N951",0,"","","","",""))
        self.InsertField(FieldReal(self,"N952",0,"","","","",""))
        self.InsertField(FieldReal(self,"N953",0,"","","","",""))
        self.InsertField(FieldReal(self,"N954",0,"","","","",""))
        self.InsertField(FieldReal(self,"N955",0,"","","","",""))
        self.InsertField(FieldReal(self,"N956",0,"","","","",""))
        self.InsertField(FieldReal(self,"N957",0,"","","","",""))
        self.InsertField(FieldReal(self,"N958",0,"","","","",""))
        self.InsertField(FieldReal(self,"N959",0,"","","","",""))
        self.InsertField(FieldReal(self,"N960",0,"","","","",""))
        self.InsertField(FieldReal(self,"N961",0,"","","","",""))
        self.InsertField(FieldReal(self,"N962",0,"","","","",""))
        self.InsertField(FieldReal(self,"N963",0,"","","","",""))
        self.InsertField(FieldReal(self,"N964",0,"","","","",""))
        self.InsertField(FieldReal(self,"N965",0,"","","","",""))
        self.InsertField(FieldReal(self,"N966",0,"","","","",""))
        self.InsertField(FieldReal(self,"N967",0,"","","","",""))
        self.InsertField(FieldReal(self,"N968",0,"","","","",""))
        self.InsertField(FieldReal(self,"N969",0,"","","","",""))
        self.InsertField(FieldReal(self,"N970",0,"","","","",""))
        self.InsertField(FieldReal(self,"N971",0,"","","","",""))
        self.InsertField(FieldReal(self,"N972",0,"","","","",""))
        self.InsertField(FieldReal(self,"N973",0,"","","","",""))
        self.InsertField(FieldReal(self,"N974",0,"","","","",""))
        self.InsertField(FieldReal(self,"N975",0,"","","","",""))
        self.InsertField(FieldReal(self,"N976",0,"","","","",""))
        self.InsertField(FieldReal(self,"N977",0,"","","","",""))
        self.InsertField(FieldReal(self,"N978",0,"","","","",""))
        self.InsertField(FieldReal(self,"N979",0,"","","","",""))
        self.InsertField(FieldReal(self,"N980",0,"","","","",""))
        self.InsertField(FieldReal(self,"N981",0,"","","","",""))
        self.InsertField(FieldReal(self,"N982",0,"","","","",""))
        self.InsertField(FieldReal(self,"N983",0,"","","","",""))
        self.InsertField(FieldReal(self,"N984",0,"","","","",""))
        self.InsertField(FieldReal(self,"N985",0,"","","","",""))
        self.InsertField(FieldReal(self,"N986",0,"","","","",""))
        self.InsertField(FieldReal(self,"N987",0,"","","","",""))
        self.InsertField(FieldReal(self,"N988",0,"","","","",""))
        self.InsertField(FieldReal(self,"N989",0,"","","","",""))
        self.InsertField(FieldReal(self,"N990",0,"","","","",""))
        self.InsertField(FieldReal(self,"N991",0,"","","","",""))
        self.InsertField(FieldReal(self,"N992",0,"","","","",""))
        self.InsertField(FieldReal(self,"N993",0,"","","","",""))
        self.InsertField(FieldReal(self,"N994",0,"","","","",""))
        self.InsertField(FieldReal(self,"N995",0,"","","","",""))
        self.InsertField(FieldReal(self,"N996",0,"","","","",""))
        self.InsertField(FieldReal(self,"N997",0,"","","","",""))
        self.InsertField(FieldReal(self,"N998",0,"","","","",""))
        self.InsertField(FieldReal(self,"N999",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1000",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1001",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1002",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1003",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1004",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1005",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1006",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1007",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1008",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1009",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1010",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1011",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1012",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1013",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1014",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1015",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1016",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1017",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1018",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1019",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1020",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1021",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1022",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1023",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1024",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1025",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1026",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1027",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1028",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1029",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1030",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1031",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1032",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1033",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1034",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1035",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1036",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1037",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1038",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1039",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1040",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1041",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1042",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1043",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1044",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1045",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1046",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1047",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1048",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1049",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1050",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1051",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1052",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1053",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1054",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1055",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1056",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1057",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1058",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1059",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1060",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1061",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1062",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1063",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1064",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1065",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1066",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1067",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1068",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1069",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1070",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1071",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1072",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1073",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1074",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1075",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1076",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1077",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1078",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1079",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1080",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1081",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1082",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1083",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1084",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1085",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1086",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1087",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1088",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1089",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1090",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1091",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1092",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1093",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1094",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1095",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1096",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1097",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1098",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1099",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1100",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1101",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1102",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1103",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1104",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1105",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1106",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1107",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1108",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1109",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1110",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1111",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1112",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1113",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1114",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1115",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1116",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1117",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1118",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1119",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1120",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1121",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1122",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1123",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1124",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1125",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1126",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1127",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1128",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1129",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1130",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1131",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1132",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1133",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1134",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1135",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1136",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1137",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1138",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1139",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1140",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1141",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1142",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1143",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1144",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1145",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1146",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1147",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1148",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1149",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1150",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1151",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1152",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1153",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1154",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1155",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1156",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1157",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1158",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1159",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1160",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1161",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1162",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1163",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1164",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1165",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1166",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1167",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1168",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1169",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1170",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1171",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1172",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1173",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1174",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1175",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1176",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1177",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1178",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1179",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1180",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1181",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1182",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1183",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1184",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1185",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1186",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1187",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1188",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1189",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1190",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1191",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1192",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1193",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1194",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1195",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1196",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1197",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1198",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1199",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1200",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1201",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1202",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1203",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1204",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1205",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1206",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1207",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1208",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1209",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1210",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1211",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1212",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1213",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1214",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1215",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1216",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1217",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1218",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1219",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1220",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1221",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1222",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1223",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1224",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1225",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1226",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1227",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1228",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1229",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1230",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1231",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1232",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1233",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1234",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1235",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1236",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1237",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1238",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1239",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1240",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1241",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1242",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1243",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1244",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1245",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1246",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1247",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1248",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1249",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1250",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1251",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1252",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1253",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1254",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1255",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1256",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1257",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1258",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1259",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1260",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1261",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1262",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1263",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1264",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1265",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1266",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1267",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1268",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1269",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1270",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1271",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1272",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1273",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1274",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1275",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1276",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1277",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1278",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1279",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1280",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1281",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1282",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1283",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1284",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1285",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1286",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1287",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1288",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1289",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1290",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1291",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1292",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1293",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1294",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1295",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1296",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1297",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1298",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1299",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1300",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1301",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1302",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1303",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1304",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1305",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1306",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1307",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1308",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1309",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1310",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1311",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1312",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1313",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1314",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1315",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1316",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1317",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1318",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1319",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1320",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1321",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1322",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1323",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1324",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1325",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1326",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1327",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1328",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1329",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1330",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1331",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1332",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1333",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1334",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1335",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1336",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1337",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1338",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1339",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1340",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1341",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1342",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1343",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1344",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1345",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1346",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1347",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1348",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1349",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1350",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1351",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1352",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1353",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1354",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1355",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1356",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1357",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1358",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1359",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1360",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1361",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1362",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1363",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1364",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1365",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1366",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1367",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1368",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1369",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1370",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1371",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1372",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1373",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1374",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1375",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1376",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1377",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1378",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1379",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1380",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1381",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1382",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1383",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1384",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1385",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1386",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1387",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1388",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1389",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1390",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1391",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1392",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1393",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1394",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1395",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1396",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1397",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1398",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1399",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1400",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1401",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1402",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1403",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1404",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1405",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1406",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1407",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1408",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1409",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1410",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1411",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1412",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1413",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1414",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1415",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1416",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1417",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1418",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1419",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1420",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1421",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1422",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1423",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1424",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1425",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1426",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1427",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1428",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1429",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1430",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1431",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1432",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1433",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1434",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1435",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1436",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1437",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1438",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1439",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1440",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1441",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1442",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1443",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1444",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1445",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1446",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1447",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1448",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1449",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1450",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1451",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1452",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1453",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1454",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1455",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1456",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1457",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1458",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1459",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1460",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1461",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1462",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1463",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1464",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1465",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1466",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1467",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1468",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1469",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1470",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1471",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1472",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1473",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1474",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1475",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1476",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1477",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1478",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1479",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1480",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1481",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1482",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1483",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1484",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1485",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1486",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1487",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1488",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1489",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1490",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1491",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1492",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1493",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1494",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1495",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1496",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1497",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1498",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1499",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1500",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1501",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1502",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1503",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1504",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1505",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1506",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1507",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1508",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1509",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1510",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1511",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1512",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1513",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1514",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1515",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1516",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1517",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1518",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1519",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1520",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1521",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1522",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1523",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1524",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1525",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1526",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1527",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1528",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1529",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1530",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1531",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1532",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1533",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1534",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1535",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1536",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1537",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1538",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1539",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1540",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1541",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1542",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1543",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1544",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1545",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1546",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1547",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1548",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1549",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1550",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1551",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1552",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1553",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1554",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1555",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1556",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1557",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1558",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1559",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1560",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1561",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1562",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1563",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1564",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1565",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1566",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1567",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1568",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1569",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1570",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1571",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1572",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1573",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1574",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1575",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1576",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1577",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1578",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1579",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1580",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1581",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1582",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1583",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1584",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1585",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1586",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1587",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1588",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1589",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1590",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1591",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1592",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1593",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1594",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1595",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1596",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1597",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1598",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1599",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1600",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1601",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1602",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1603",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1604",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1605",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1606",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1607",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1608",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1609",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1610",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1611",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1612",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1613",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1614",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1615",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1616",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1617",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1618",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1619",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1620",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1621",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1622",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1623",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1624",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1625",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1626",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1627",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1628",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1629",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1630",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1631",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1632",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1633",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1634",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1635",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1636",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1637",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1638",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1639",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1640",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1641",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1642",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1643",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1644",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1645",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1646",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1647",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1648",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1649",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1650",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1651",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1652",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1653",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1654",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1655",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1656",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1657",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1658",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1659",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1660",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1661",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1662",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1663",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1664",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1665",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1666",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1667",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1668",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1669",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1670",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1671",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1672",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1673",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1674",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1675",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1676",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1677",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1678",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1679",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1680",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1681",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1682",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1683",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1684",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1685",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1686",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1687",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1688",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1689",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1690",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1691",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1692",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1693",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1694",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1695",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1696",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1697",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1698",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1699",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1700",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1701",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1702",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1703",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1704",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1705",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1706",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1707",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1708",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1709",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1710",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1711",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1712",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1713",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1714",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1715",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1716",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1717",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1718",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1719",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1720",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1721",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1722",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1723",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1724",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1725",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1726",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1727",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1728",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1729",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1730",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1731",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1732",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1733",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1734",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1735",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1736",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1737",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1738",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1739",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1740",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1741",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1742",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1743",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1744",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1745",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1746",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1747",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1748",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1749",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1750",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1751",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1752",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1753",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1754",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1755",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1756",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1757",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1758",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1759",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1760",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1761",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1762",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1763",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1764",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1765",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1766",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1767",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1768",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1769",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1770",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1771",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1772",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1773",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1774",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1775",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1776",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1777",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1778",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1779",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1780",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1781",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1782",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1783",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1784",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1785",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1786",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1787",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1788",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1789",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1790",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1791",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1792",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1793",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1794",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1795",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1796",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1797",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1798",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1799",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1800",0,"","","","",""))
        self.InsertField(FieldReal(self,"N1800",0,"","","","",""))


        self.insertMemo(("Name is followed by up to 450 sets of normal-incidence measured values of","[wavelength, transmittance, front reflectance, back reflectance] for wavelengths","covering the solar spectrum (from about 0.25 to 2.5 microns)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("MaterialProperty:GlazingSpectralData")





class Construction(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Outside Layer","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 2","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 3","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 4","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 5","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 6","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 7","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 8","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 9","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 10","","","MaterialName"))


        self.insertMemo(("Start with outside layer and work your way to the inside layer","Up to 10 layers total, 8 for windows","Enter the material name for each layer",))
        self.addReference("ConstructionNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Construction")





class Construction_InternalSource(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldInt(self,"Source Present After Layer Number",0,("refers to the list of materials which follows","",),1,"","",""))
        self.InsertField(FieldInt(self,"Temperature Calculation Requested After Layer Number",0,("refers to the list of materials which follows","",),"","","",""))
        self.InsertField(FieldInt(self,"Dimensions for the CTF Calculation",0,("1 = 1-dimensional calculation, 2 = 2-dimensional calculation","",),1,2,"",""))
        self.InsertField(FieldReal(self,"Tube Spacing",0,("uniform spacing between tubes or resistance wires in direction","perpendicular to main intended direction of heat transfer","Units: m",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Outside Layer","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 2","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 3","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 4","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 5","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 6","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 7","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 8","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 9","","","MaterialName"))
        self.InsertField(FieldObjectlist(self,"Layer 10","","","MaterialName"))


        self.insertMemo(("Start with outside layer and work your way to the inside Layer","Up to 10 layers total, 8 for windows","Enter the material name for each layer",))
        self.addReference("ConstructionNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Surface Construction Elements") 
        self.setExtensible(-1)
        self.setClassnameIDD("Construction:InternalSource")





class Construction_WindowDataFile(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"File Name","",("default file name is *Window5DataFile.dat*","limit on this field is 100 characters.","",)))


        self.insertMemo(("Initiates search of the Window5 data file for a window called Name.",))
        self.addReference("ConstructionNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Construction:WindowDataFile")





class GlobalGeometryRules(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Starting Vertex Position","",("Specified as entry for a 4 sided surface/rectangle","Surfaces are specified as viewed from outside the surface","Shading surfaces as viewed from behind.  (towards what they are shading)","",),["UpperLeftCorner","LowerLeftCorner","UpperRightCorner","LowerRightCorner",]))
        self.InsertField(FieldChoice(self,"Vertex Entry Direction","","",["Counterclockwise","Clockwise",]))
        self.InsertField(FieldChoice(self,"Coordinate System","",("relative -- coordinates are entered relative to zone origin","world -- all coordinates entered are *absolute* for this facility","absolute -- same as world","",),["Relative","World","Absolute",]))
        self.InsertField(FieldChoice(self,"Daylighting Reference Point Coordinate System","Relative",("Relative -- coordinates are entered relative to zone origin","World -- all coordinates entered are *absolute* for this facility","absolute -- same as world","",),["Relative","World","Absolute",]))
        self.InsertField(FieldChoice(self,"Rectangular Surface Coordinate System","Relative",("Relative -- Starting corner is entered relative to zone origin","World -- Starting corner is entered in *absolute*","absolute -- same as world","",),["Relative","World","Absolute",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("GlobalGeometryRules")





class GeometryTransform(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Plane of Transform","XY",("only current allowed value is *XY*","",),["XY",]))
        self.InsertField(FieldReal(self,"Current Aspect Ratio",0,("Aspect ratio of building as described in idf","",),"","",0,""))
        self.InsertField(FieldReal(self,"New Aspect Ratio",0,("Aspect ratio to transform to during run","",),"","",0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("GeometryTransform")





class Zone(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Direction of Relative North","0","","","","",""))
        self.InsertField(FieldReal(self,"X Origin","0","","","","",""))
        self.InsertField(FieldReal(self,"Y Origin","0","","","","",""))
        self.InsertField(FieldReal(self,"Z Origin","0","","","","",""))
        self.InsertField(FieldInt(self,"Type","1","",1,1,"",""))
        self.InsertField(FieldInt(self,"Multiplier","1","",1,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Ceiling Height","autocalculate",("If this field is 0.0, negative or autocalculate, then the average height","of the zone is automatically calculated and used in subsequent calculations.","If this field is positive, then the number entered here will be used.","Note that the Zone Ceiling Height is the distance from the Floor to","the Ceiling in the Zone, not an absolute height from the ground.","Units: m",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Volume","autocalculate",("If this field is 0.0, negative or autocalculate, then the volume of the zone","is automatically calculated and used in subsequent calculations.","If this field is positive, then the number entered here will be used.","Units: m3",),"","","",""))
        self.InsertField(FieldChoice(self,"Zone Inside Convection Algorithm","",("Will default to same value as SurfaceConvectionAlgorithm:Inside object","setting this field overrides the default SurfaceConvectionAlgorithm:Inside for this zone","Simple = constant natural convection (ASHRAE)","Detailed = variable natural convection based on temperature difference (ASHRAE)","CeilingDiffuser = ACH based forced and mixed convection correlations"," for ceiling diffuser configuration with simple natural convection limit","TrombeWall = variable natural convection in an enclosed rectangular cavity","",),["Simple","Detailed","CeilingDiffuser","TrombeWall",]))
        self.InsertField(FieldChoice(self,"Zone Outside Convection Algorithm","",("Will default to same value as SurfaceConvectionAlgorithm:Outside object","setting this field overrides the default SurfaceConvectionAlgorithm:Outside for this zone","",),["Simple","Detailed","BLAST","TARP","DOE-2","MoWiTT",]))
        self.InsertField(FieldYesNo(self,"Part of Total Floor Area","Yes","",["Yes","No",]))


        self.addReference("ZoneNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("ZoneAndZoneListNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Zone")





class ZoneList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Zone List Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone 1 Name","","","ZoneNames"))


        self.addReference("ZoneListNames")
        self.addReference("ZoneAndZoneListNames")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(1)
        self.setClassnameIDD("ZoneList")





class ZoneGroup(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Zone Group Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone List Name","","","ZoneListNames"))
        self.InsertField(FieldInt(self,"Zone List Multiplier","1","",1,"","",""))


        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneGroup")





class BuildingSurface_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Surface Type","","",["Floor","Wall","Ceiling","Roof",]))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Outside Boundary Condition","","",["Surface","Zone","Outdoors","Ground","OtherSideCoefficients","OtherSideConditionsModel","Adiabatic",]))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Non-blank only if the field Outside Boundary Condition is Surface, Zone, OtherSideCoefficients,","or OtherSideConditionsModel","If Surface, specify name of corresponding surface in adjacent zone or","specify current surface name for internal partition separating like zones","If Zone, specify the name of the corresponding zone and","the program will generate the corresponding interzone surface","If OtherSideCoefficients, specify name of SurfaceProperty:OtherSideCoefficients","If OtherSideConditionsModel, specify name of SurfaceProperty:OtherSideConditionsModel","",),"OutFaceEnvNames"))
        self.InsertField(FieldChoice(self,"Sun Exposure","SunExposed","",["SunExposed","NoSun",]))
        self.InsertField(FieldChoice(self,"Wind Exposure","WindExposed","",["WindExposed","NoWind",]))
        self.InsertField(FieldRealAutocalculate(self,"View Factor to Ground","autocalculate",("From the exterior of the surface","Unused if one uses the *reflections* options in Solar Distribution in Building input","unless a DaylightingDevice:Shelf or DaylightingDevice:Tubular object has been specified.","autocalculate will automatically calculate this value from the tilt of the surface","",),0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("shown with 120 vertex coordinates -- extensible object"," *extensible* -- duplicate last set of x,y,z coordinates, renumbering please","(and changing z terminator to a comma *,* for all but last one which needs a semi-colon *;*)","vertices are given in GlobalGeometryRules coordinates -- if relative, all surface coordinates","are *relative* to the Zone Origin.  If world, then building and zone origins are used","for some internal calculations, but all coordinates are given in an *absolute* system.","",),3,"","",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))


        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(3)
        self.setClassnameIDD("BuildingSurface:Detailed")





class Wall_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Outside Boundary Condition","","",["Surface","Zone","Outdoors","Ground","OtherSideCoefficients","OtherSideConditionsModel","Adiabatic",]))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Non-blank only if the field Outside Boundary Condition is Surface, Zone, OtherSideCoefficients,","or OtherSideConditionsModel","If Surface, specify name of corresponding surface in adjacent zone or","specify current surface name for internal partition separating like zones","If Zone, specify the name of the corresponding zone and","the program will generate the corresponding interzone surface","If OtherSideCoefficients, specify name of SurfaceProperty:OtherSideCoefficients","If OtherSideConditionsModel, specify name of SurfaceProperty:OtherSideConditionsModel","",),"OutFaceEnvNames"))
        self.InsertField(FieldChoice(self,"Sun Exposure","SunExposed","",["SunExposed","NoSun",]))
        self.InsertField(FieldChoice(self,"Wind Exposure","WindExposed","",["WindExposed","NoWind",]))
        self.InsertField(FieldRealAutocalculate(self,"View Factor to Ground","autocalculate",("From the exterior of the surface","Unused if one uses the *reflections* options in Solar Distribution in Building input","unless a DaylightingDevice:Shelf or DaylightingDevice:Tubular object has been specified.","autocalculate will automatically calculate this value from the tilt of the surface","",),0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("shown with 120 vertex coordinates -- extensible object"," *extensible* -- duplicate last set of x,y,z coordinates, renumbering please","(and changing z terminator to a comma *,* for all but last one which needs a semi-colon *;*)","vertices are given in GlobalGeometryRules coordinates -- if relative, all surface coordinates","are *relative* to the Zone Origin.  If world, then building and zone origins are used","for some internal calculations, but all coordinates are given in an *absolute* system.","",),3,"","",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))


        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(3)
        self.setClassnameIDD("Wall:Detailed")





class RoofCeiling_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Outside Boundary Condition","","",["Surface","Zone","Outdoors","Ground","OtherSideCoefficients","OtherSideConditionsModel","Adiabatic",]))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Non-blank only if the field Outside Boundary Condition is Surface, Zone, OtherSideCoefficients,","or OtherSideConditionsModel","If Surface, specify name of corresponding surface in adjacent zone or","specify current surface name for internal partition separating like zones","If Zone, specify the name of the corresponding zone and","the program will generate the corresponding interzone surface","If OtherSideCoefficients, specify name of SurfaceProperty:OtherSideCoefficients","If OtherSideConditionsModel, specify name of SurfaceProperty:OtherSideConditionsModel","",),"OutFaceEnvNames"))
        self.InsertField(FieldChoice(self,"Sun Exposure","SunExposed","",["SunExposed","NoSun",]))
        self.InsertField(FieldChoice(self,"Wind Exposure","WindExposed","",["WindExposed","NoWind",]))
        self.InsertField(FieldRealAutocalculate(self,"View Factor to Ground","autocalculate",("From the exterior of the surface","Unused if one uses the *reflections* options in Solar Distribution in Building input","unless a DaylightingDevice:Shelf or DaylightingDevice:Tubular object has been specified.","autocalculate will automatically calculate this value from the tilt of the surface","",),0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("shown with 120 vertex coordinates -- extensible object"," *extensible* -- duplicate last set of x,y,z coordinates, renumbering please","(and changing z terminator to a comma *,* for all but last one which needs a semi-colon *;*)","vertices are given in GlobalGeometryRules coordinates -- if relative, all surface coordinates","are *relative* to the Zone Origin.  If world, then building and zone origins are used","for some internal calculations, but all coordinates are given in an *absolute* system.","",),3,"","",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))


        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(3)
        self.setClassnameIDD("RoofCeiling:Detailed")





class Floor_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Outside Boundary Condition","","",["Surface","Zone","Outdoors","Ground","OtherSideCoefficients","OtherSideConditionsModel","Adiabatic",]))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Non-blank only if the field Outside Boundary Condition is Surface, Zone, OtherSideCoefficients,","or OtherSideConditionsModel","If Surface, specify name of corresponding surface in adjacent zone or","specify current surface name for internal partition separating like zones","If Zone, specify the name of the corresponding zone and","the program will generate the corresponding interzone surface","If OtherSideCoefficients, specify name of SurfaceProperty:OtherSideCoefficients","If OtherSideConditionsModel, specify name of SurfaceProperty:OtherSideConditionsModel","",),"OutFaceEnvNames"))
        self.InsertField(FieldChoice(self,"Sun Exposure","SunExposed","",["SunExposed","NoSun",]))
        self.InsertField(FieldChoice(self,"Wind Exposure","WindExposed","",["WindExposed","NoWind",]))
        self.InsertField(FieldRealAutocalculate(self,"View Factor to Ground","autocalculate",("From the exterior of the surface","Unused if one uses the *reflections* options in Solar Distribution in Building input","unless a DaylightingDevice:Shelf or DaylightingDevice:Tubular object has been specified.","autocalculate will automatically calculate this value from the tilt of the surface","",),0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("shown with 120 vertex coordinates -- extensible object"," *extensible* -- duplicate last set of x,y,z coordinates, renumbering please","(and changing z terminator to a comma *,* for all but last one which needs a semi-colon *;*)","vertices are given in GlobalGeometryRules coordinates -- if relative, all surface coordinates","are *relative* to the Zone Origin.  If world, then building and zone origins are used","for some internal calculations, but all coordinates are given in an *absolute* system.","",),3,"","",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))


        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(3)
        self.setClassnameIDD("Floor:Detailed")





class Wall_Exterior(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of wall (S=180,N=0,E=90,W=270)","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","90",("Walls are usually tilted 90 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Starting (x,y,z) coordinate is the Lower Left Corner of the Wall","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("Used for exterior walls","View Factor to Ground is automatically calculated.",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Wall:Exterior")





class Wall_Adiabatic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of wall (S=180,N=0,E=90,W=270)","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","90",("Walls are usually tilted 90 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Starting (x,y,z) coordinate is the Lower Left Corner of the Wall","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used for interior walls",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Wall:Adiabatic")





class Wall_Underground(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of wall (S=180,N=0,E=90,W=270)","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","90",("Walls are usually tilted 90 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Starting (x,y,z) coordinate is the Lower Left Corner of the Wall","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used for interior walls",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Wall:Underground")





class Wall_Interzone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone for the inside of the surface","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Specify a surface name in an adjacent zone for known interior walls.","Specify a zone name of an adjacent zone to automatically generate the interior wall in the adjacent zone.","",),"OutFaceEnvNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of wall (S=180,N=0,E=90,W=270)","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","90",("Walls are usually tilted 90 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Starting (x,y,z) coordinate is the Lower Left Corner of the Wall","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used for interzone walls (walls between zones)",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Wall:Interzone")





class Roof(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of Roof","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","0",("Flat Roofs are tilted 0 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("If not Flat, Starting coordinate is the Lower Left Corner of the Roof","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,("Along X Axis","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Width",0,("Along Y Axis","Units: m",),"","","",""))


        self.insertMemo(("Used for exterior roofs","View Factor to Ground is automatically calculated.",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Roof")





class Ceiling_Adiabatic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of Ceiling","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","0",("Ceilings are usually tilted 0 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("If not Flat, Starting coordinate is the Lower Left Corner of the Ceiling","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,("Along X Axis","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Width",0,("Along Y Axis","Units: m",),"","","",""))


        self.insertMemo(("used for interior ceilings",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Ceiling:Adiabatic")





class Ceiling_Interzone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone for the inside of the surface","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Specify a surface name in an adjacent zone for known interior walls.","Specify a zone name of an adjacent zone to automatically generate the interior wall in the adjacent zone.","",),"OutFaceEnvNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of wall (S=180,N=0,E=90,W=270)","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","0",("Ceilings are usually tilted 0 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("If not Flat, should be Lower Left Corner (from outside)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,("Along X Axis","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Width",0,("Along Y Axis","Units: m",),"","","",""))


        self.insertMemo(("used for ceilings using adjacent zone (interzone) heat transfer","adjacent surface should be a floor",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Ceiling:Interzone")





class Floor_GroundContact(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,"",0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","180",("Floors are usually tilted 180 degrees","",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("if not flat, should be lower left corner (from outside)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,("Along X Axis","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Width",0,("Along Y Axis","Units: m",),"","","",""))


        self.insertMemo(("Used for exterior floors with ground contact","View Factors to Ground is automatically calculated.",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Floor:GroundContact")





class Floor_Adiabatic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,"",0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","180",("Floors are usually tilted 180 degrees","",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("if not flat, should be lower left corner (from outside)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,("Along X Axis","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Width",0,("Along Y Axis","Units: m",),"","","",""))


        self.insertMemo(("Used for exterior floors ignoring ground contact or interior floors","View Factor to Ground is automatically calculated.",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Floor:Adiabatic")





class Floor_Interzone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone for the inside of the surface","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Specify a surface name in an adjacent zone for known interior walls.","Specify a zone name of an adjacent zone to automatically generate the interior wall in the adjacent zone.","",),"OutFaceEnvNames"))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,"",0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","180",("Floors are usually tilted 180 degrees","Units: deg",),0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("If not Flat, should be Lower Left Corner (from outside)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,("Along X Axis","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Width",0,("Along Y Axis","Units: m",),"","","",""))


        self.insertMemo(("used for floors using adjacent zone (interzone) heat transfer","adjacent surface should be a ceiling",))
        self.addReference("SurfaceNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Floor:Interzone")





class FenestrationSurface_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Surface Type","","",["Window","Door","GlassDoor","TubularDaylightDome","TubularDaylightDiffuser",]))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","","","SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Non-blank only if base surface field Outside Boundary Condition is Surface or OtherSideCoefficients","If Base Surface's Surface, specify name of corresponding subsurface in adjacent zone or","specify current subsurface name for internal partition separating like zones","If OtherSideCoefficients, specify name of SurfaceProperty:OtherSideCoefficients or leave blank to inherit","Base Surface's OtherSide Coefficients","",),"OutFaceEnvNames"))
        self.InsertField(FieldRealAutocalculate(self,"View Factor to Ground","autocalculate",("From the exterior of the surface","Unused if one uses the *reflections* options in Solar Distribution in Building input","unless a DaylightingDevice:Shelf or DaylightingDevice:Tubular object has been specified.","autocalculate will automatically calculate this value from the tilt of the surface","",),0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Shading Control Name","",("enter the name of a WindowProperty:ShadingControl object","used for windows and glass doors only","If not specified, window or glass door has no shading (blind, roller shade, etc.)","",),"WindowShadeControlNames"))
        self.InsertField(FieldObjectlist(self,"Frame and Divider Name","",("Enter the name of a WindowProperty:FrameAndDivider object","Used only for exterior windows (rectangular) and glass doors.","Unused for triangular windows.","If not specified (blank), window or glass door has no frame or divider","and no beam solar reflection from reveal surfaces.","",),"WindowFrameAndDividerNames"))
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used only for Surface Type = WINDOW, GLASSDOOR or DOOR","Non-integer values will be truncated to integer","",),1.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("vertices are given in GlobalGeometryRules coordinates -- if relative, all surface coordinates","are *relative* to the Zone Origin.  If world, then building and zone origins are used","for some internal calculations, but all coordinates are given in an *absolute* system.","",),3,4,"",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 2 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 2 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 2 Z-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 3 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 3 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 3 Z-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 4 X-coordinate",0,("Not used for triangles","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Vertex 4 Y-coordinate",0,("Not used for triangles","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Vertex 4 Z-coordinate",0,("Not used for triangles","Units: m",),"","","",""))


        self.insertMemo(("Used for windows, doors, glass doors, tubular daylighting devices",))
        self.addReference("SubSurfNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("OutFaceEnvNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(19)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("FenestrationSurface:Detailed")





class Window(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","",("Name of Surface (Wall, usually) the Window is on (i.e., Base Surface)","Window assumes the azimuth and tilt angles of the surface it is on.","",),"SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Shading Control Name","",("enter the name of a WindowProperty:ShadingControl object","used for windows and glass doors only","If not specified, window or glass door has no shading (blind, roller shade, etc.)","",),"WindowShadeControlNames"))
        self.InsertField(FieldObjectlist(self,"Frame and Divider Name","",("Enter the name of a WindowProperty:FrameAndDivider object","Used only for exterior windows (rectangular) and glass doors.","Unused for triangular windows.","If not specified (blank), window or glass door has no frame or divider","and no beam solar reflection from reveal surfaces.","",),"WindowFrameAndDividerNames"))
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used only for Surface Type = WINDOW, GLASSDOOR or DOOR","Non-integer values will be truncated to integer","",),1.0,"","",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Window starting coordinate is specified relative to the Base Surface origin.","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,("How far up the wall the Window starts. (in 2-d, this would be a Y Coordinate)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.addReference("SubSurfNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Window")





class Door(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","",("Name of Surface (Wall, usually) the Door is on (i.e., Base Surface)","Door assumes the azimuth and tilt angles of the surface it is on.","",),"SurfaceNames"))
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used only for Surface Type = WINDOW, GLASSDOOR or DOOR","Non-integer values will be truncated to integer","",),1.0,"","",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Door starting coordinate is specified relative to the Base Surface origin.","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,("How far up the wall the Door starts. (in 2-d, this would be a Y Coordinate)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used to specify opaque doors",))
        self.addReference("SubSurfNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Door")





class GlazedDoor(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","",("Name of Surface (Wall, usually) the Door is on (i.e., Base Surface)","Door assumes the azimuth and tilt angles of the surface it is on.","",),"SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Shading Control Name","",("enter the name of a WindowProperty:ShadingControl object","used for windows and glass doors only","If not specified, window or glass door has no shading (blind, roller shade, etc.)","",),"WindowShadeControlNames"))
        self.InsertField(FieldObjectlist(self,"Frame and Divider Name","",("Enter the name of a WindowProperty:FrameAndDivider object","Used only for exterior windows (rectangular) and glass doors.","Unused for triangular windows.","If not specified (blank), window or glass door has no frame or divider","and no beam solar reflection from reveal surfaces.","",),"WindowFrameAndDividerNames"))
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used only for Surface Type = WINDOW, GLASSDOOR or DOOR","Non-integer values will be truncated to integer","",),1.0,"","",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Door starting coordinate is specified relative to the Base Surface origin.","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,("How far up the wall the Door starts. (in 2-d, this would be a Y Coordinate)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used to specify glass doors",))
        self.addReference("SubSurfNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("GlazedDoor")





class Window_Interzone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","",("Name of Surface (Wall, usually) the Window is on (i.e., Base Surface)","Window assumes the azimuth and tilt angles of the surface it is on.","",),"SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Specify a surface name in an adjacent zone for known interior windows.","Specify a zone name of an adjacent zone to automatically generate the interior window in the adjacent zone.","a blank field will set up a Window in an adjacent zone (same zone as adjacent to base surface)","",),"OutFaceEnvNames"))
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used only for Surface Type = WINDOW, GLASSDOOR or DOOR","Non-integer values will be truncated to integer","",),1.0,"","",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Window starting coordinate is specified relative to the Base Surface origin.","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,("How far up the wall the Window starts. (in 2-d, this would be a Y Coordinate)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used to specify interior windows adjacent to other zones",))
        self.addReference("SubSurfNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Window:Interzone")





class Door_Interzone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","",("Name of Surface (Wall, usually) the Door is on (i.e., Base Surface)","Door assumes the azimuth and tilt angles of the surface it is on.","",),"SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Specify a surface name in an adjacent zone for known interior doors.","Specify a zone name of an adjacent zone to automatically generate interior door in the adjacent zone.","a blank field will set up a Window in an adjacent zone (same zone as adjacent to base surface)","",),"OutFaceEnvNames"))
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used only for Surface Type = WINDOW, GLASSDOOR or DOOR","Non-integer values will be truncated to integer","",),1.0,"","",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Door starting coordinate is specified relative to the Base Surface origin.","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,("How far up the wall the Door starts. (in 2-d, this would be a Y Coordinate)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used to specify opaque interior doors adjacent to other zones",))
        self.addReference("SubSurfNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Door:Interzone")





class GlazedDoor_Interzone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","",("Name of Surface (Wall, usually) the Door is on (i.e., Base Surface)","Door assumes the azimuth and tilt angles of the surface it is on.","",),"SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Outside Boundary Condition Object","",("Specify a surface name in an adjacent zone for known interior doors.","Specify a zone name of an adjacent zone to automatically generate the interior glazed door in the adjacent zone.","a blank field will set up a Window in an adjacent zone (same zone as adjacent to base surface)","",),"OutFaceEnvNames"))
        self.InsertField(FieldReal(self,"Multiplier","1.0",("Used only for Surface Type = WINDOW, GLASSDOOR or DOOR","Non-integer values will be truncated to integer","",),1.0,"","",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Door starting coordinate is specified relative to the Base Surface origin.","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,("How far up the wall the Door starts. (in 2-d, this would be a Y Coordinate)","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used to specify glass interior doors adjacent to other zones",))
        self.addReference("SubSurfNames")
        self.addReference("SurfAndSubSurfNames")
        self.addReference("AllHeatTranSurfNames")
        self.addReference("HeatTranBaseSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("RadGroupAndSurfNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("GlazedDoor:Interzone")





class WindowProperty_ShadingControl(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Referenced by surfaces that are exterior windows","Not used by interzone windows","",)))
        self.InsertField(FieldChoice(self,"Shading Type","","",["InteriorShade","ExteriorShade","ExteriorScreen","InteriorBlind","ExteriorBlind","BetweenGlassShade","BetweenGlassBlind","SwitchableGlazing",]))
        self.InsertField(FieldObjectlist(self,"Construction with Shading Name","",("Required if Shading Type = SwitchableGlazing","Required if Shading Type = interior or exterior shade or blind, or exterior screen, and","*Shading Device Material Name* is not specified.","If both *Construction with Shading Name* and *Shading Device Material Name* are entered,","the former takes precedence.","",),"ConstructionNames"))
        self.InsertField(FieldChoice(self,"Shading Control Type","",("OnIfScheduleAllows requires that Schedule Name be specified and","Shading Control Is Scheduled = Yes.","AlwaysOn, AlwaysOff and OnIfScheduleAllows are the only valid control types for ExteriorScreen.","The following six control types are used primarily to reduce","zone cooling load due to window solar gain","Following entry should be used only if Shading Type = SwitchableGlazing","and window is in a daylit zone","The following three control types are used to reduce zone Heating load. They can be","used with any Shading Type but are most appropriate for opaque interior or exterior","shades with high insulating value (*opaque movable insulation*)","The following two control types are used to reduce zone heating and cooling load.","They can beused with any Shading Type but are most appropriate for translucent interior","or exterior shades with high insulating value (*translucent movable insulation*)","The following two control types are used to reduce zone Cooling load.","They can beused with any Shading Type but are most appropriate for interior","or exterior blinds,interior or exterior shades with low insulating value, or","switchable glazing","The following four control types require that both Setpoint and Setpoint2 be specified","Setpoint will correspond to outdoor air temp or zone air temp (deg C)","Setpoint2 will correspond to solar on window or horizontal solar (W/m2)","",),["AlwaysOn","AlwaysOff","OnIfScheduleAllows","OnIfHighSolarOnWindow","OnIfHighHorizontalSolar","OnIfHighOutdoorAirTemperature","OnIfHighZoneAirTemperature","OnIfHighZoneCooling","OnIfHighGlare","MeetDaylightIlluminanceSetpoint","OnNightIfLowOutdoorTempAndOffDay","OnNightIfLowInsideTempAndOffDay","OnNightIfHeatingAndOffDay","OnNightIfLowOutdoorTempAndOnDayIfCooling","OnNightIfHeatingAndOnDayIfCooling","OffNightAndOnDayIfCoolingAndHighSolarOnWindow","OnNightAndOnDayIfCoolingAndHighSolarOnWindow","OnIfHighOutdoorAirTempAndHighSolarOnWindow","OnIfHighOutdoorAirTempAndHighHorizontalSolar","OnIfHighZoneAirTempAndHighSolarOnWindow","OnIfHighZoneAirTempAndHighHorizontalSolar",]))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("Required if Shading Control Is Scheduled = Yes.","If schedule value = 1, shading control is active, i.e., shading can take place only","if the control test passes. If schedule value = 0, shading is off whether or not","the control test passes. Schedule Name is required if Shading Control Is Scheduled = Yes.","If Schedule Name is not specified, shading control is assumed to be active at all times.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Setpoint",0,("W/m2 for solar-based controls, W for cooling- or heating-based controls,","deg C for temperature-based controls.","Unused for Shading Control Type = AlwaysOn, AlwaysOff, OnIfScheduleAllows,","OnIfHighGlare, Glare, and DaylightIlluminance","Units: W/m2, W or deg C",),"","","",""))
        self.InsertField(FieldYesNo(self,"Shading Control Is Scheduled","No",("If Yes, Schedule Name is required; if No, Schedule Name is not used.","Shading Control Is Scheduled = Yes is required if Shading Control Type = OnIfScheduleAllows.","",),["No","Yes",]))
        self.InsertField(FieldYesNo(self,"Glare Control Is Active","No",("If Yes and window is in a daylit zone, shading is on if zone's discomfort glare index exceeds","the maximum discomfort glare index specified in the Daylighting object referenced by the zone.","The glare test is OR'ed with the test specified by Shading Control Type.","Glare Control Is Active = Yes is required if Shading Control Type = OnIfHighGlare.","",),["No","Yes",]))
        self.InsertField(FieldObjectlist(self,"Shading Device Material Name","",("Enter then name of a WindowMaterial:Shade, WindowMaterial:Screen or WindowMaterial:Blind object.","Required if *Construction with Shading Name* is not specified.","Not used if Shading Control Type = SwitchableGlazing, BetweenGlassShade, or BetweenGlassBlind.","If both *Construction with Shading Name* and *Shading Device Material Name* are entered,","the former takes precedence.","",),"WindowShadesScreensAndBlinds"))
        self.InsertField(FieldChoice(self,"Type of Slat Angle Control for Blinds","FixedSlatAngle",("Used only if Shading Type = InteriorBlind, ExteriorBlind or BetweenGlassBlind.","If choice is ScheduledSlatAngle then Slat Angle Schedule Name is required.","",),["FixedSlatAngle","ScheduledSlatAngle","BlockBeamSolar",]))
        self.InsertField(FieldObjectlist(self,"Slat Angle Schedule Name","",("Used only if Shading Type = InteriorBlind, ExteriorBlind or BetweenGlassBlind.","Required if Type of Slat Angle Control for Blinds = ScheduledSlatAngle","Schedule values should be degrees (0 minimum, 180 maximum)","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Setpoint 2",0,("W/m2 for solar-based controls, deg C for temperature-based controls.","Used only as the second setpoint for the following two-setpoint control types:","OnIfHighOutdoorAirTempAndHighSolarOnWindow, OnIfHighOutdoorAirTempAndHighHorizontalSolar,","OnIfHighZoneAirTempAndHighSolarOnWindow, and OnIfHighZoneAirTempAndHighHorizontalSolar","Units: W/m2 or deg C",),"","","",""))


        self.addReference("WindowShadeControlNames")
        self.setRequired(False)
        self.setMinfields(11)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowProperty:ShadingControl")





class WindowProperty_FrameAndDivider(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Referenced by surfaces that are exterior windows","Not used by interzone windows","",)))
        self.InsertField(FieldReal(self,"Frame Width","0.0",("Width of frame in plane of window","Frame width assumed the same on all sides of window","Units: m",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Frame Outside Projection","0.0",("Amount that frame projects outward from the outside face of the glazing","Units: m",),0.0,0.5,"",""))
        self.InsertField(FieldReal(self,"Frame Inside Projection","0.0",("Amount that frame projects inward from the inside face of the glazing","Units: m",),0.0,0.5,"",""))
        self.InsertField(FieldReal(self,"Frame Conductance",0,("Effective conductance of frame","Excludes air films","Obtained from WINDOW 5 or other 2-D calculation","Units: W/m2-K",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Ratio of Frame-Edge Glass Conductance to Center-Of-Glass Conductance","1.0",("Excludes air films; applies only to multipane windows","Obtained from WINDOW 5 or other 2-D calculation","",),1.0,4.0,"",""))
        self.InsertField(FieldReal(self,"Frame Solar Absorptance","0.7",("Assumed same on outside and inside of frame","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Frame Visible Absorptance","0.7",("Assumed same on outside and inside of frame","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Frame Thermal Hemispherical Emissivity","0.9",("Assumed same on outside and inside of frame","",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Divider Type","DividedLite","",["DividedLite","Suspended",]))
        self.InsertField(FieldReal(self,"Divider Width","0.0",("Width of dividers in plane of window","Width assumed the same for all dividers","Units: m",),0.0,0.5,"",""))
        self.InsertField(FieldReal(self,"Number of Horizontal Dividers","0",("*Horizontal* means parallel to local window X-axis","",),0,"","",""))
        self.InsertField(FieldReal(self,"Number of Vertical Dividers","0",("*Vertical* means parallel to local window Y-axis","",),0,"","",""))
        self.InsertField(FieldReal(self,"Divider Outside Projection","0.0",("Amount that divider projects outward from the outside face of the glazing","Outside projection assumed the same for all divider elements","Units: m",),0.0,0.5,"",""))
        self.InsertField(FieldReal(self,"Divider Inside Projection","0.0",("Amount that divider projects inward from the inside face of the glazing","Inside projection assumed the same for all divider elements","Units: m",),0.0,0.5,"",""))
        self.InsertField(FieldReal(self,"Divider Conductance","0.0",("Effective conductance of divider","Excludes air films","Obtained from WINDOW 5 or other 2-D calculation","Units: W/m2-K",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Ratio of Divider-Edge Glass Conductance to Center-Of-Glass Conductance","1.0",("Excludes air films","Obtained from WINDOW 5 or other 2-D calculation","",),1.0,4.0,"",""))
        self.InsertField(FieldReal(self,"Divider Solar Absorptance","0.0",("Assumed same on outside and inside of divider","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Divider Visible Absorptance","0.0",("Assumed same on outside and inside of divider","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Divider Thermal Hemispherical Emissivity","0.9",("Assumed same on outside and inside of divider","",),"","",0.0,1.0))
        self.InsertField(FieldReal(self,"Outside Reveal Solar Absorptance","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Inside Sill Depth","0.0","",0.0,2.0,"",""))
        self.InsertField(FieldReal(self,"Inside Sill Solar Absorptance","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Inside Reveal Depth","0.0",("Distance from plane of inside surface of glazing","to plane of inside surface of wall.","Outside reveal depth is determined from the geometry","of the window and the wall it is on; it is non-zero if the plane of","the outside surface of the glazing is set back from the plane of the","outside surface of the wall.","Units: m",),0.0,2.0,"",""))
        self.InsertField(FieldReal(self,"Inside Reveal Solar Absorptance","0.0","",0.0,1.0,"",""))


        self.addReference("WindowFrameAndDividerNames")
        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowProperty:FrameAndDivider")





class WindowProperty_AirflowControl(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Name must be that of an exterior window with two or three glass layers.","",),"SubSurfNames"))
        self.InsertField(FieldChoice(self,"Airflow Source","IndoorAir","",["IndoorAir","OutdoorAir",]))
        self.InsertField(FieldChoice(self,"Airflow Destination","OutdoorAir","",["IndoorAir","OutdoorAir","ReturnAir",]))
        self.InsertField(FieldReal(self,"Maximum Flow Rate","0.0",("Above is m3/s per m of glazing width","Units: m3/s-m",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Airflow Control Type","AlwaysOnAtMaximumFlow",("ScheduledOnly requires that Airflow Has Multiplier Schedule Name = Yes"," and that Airflow Multiplier Schedule Name is specified.","",),["AlwaysOnAtMaximumFlow","AlwaysOff","ScheduledOnly",]))
        self.InsertField(FieldYesNo(self,"Airflow Is Scheduled","No",("If Yes, then Airflow Multiplier Schedule Name must be specified","",),["Yes","No",]))
        self.InsertField(FieldObjectlist(self,"Airflow Multiplier Schedule Name","",("Required if Airflow Is Scheduled = Yes.","Schedule values are 0.0 or 1.0 and multiply Maximum Air Flow.","",),"ScheduleNames"))


        self.insertMemo(("Used to control forced airflow through a gap between glass layers",))
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowProperty:AirflowControl")





class WindowProperty_StormWindow(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Window Name","",("Must be the name of a FenestrationSurface:Detailed object with Surface Type = WINDOW.","The WindowProperty:StormWindow object can only be used with exterior windows.","",)))
        self.InsertField(FieldObjectlist(self,"Storm Glass Layer Name","",("Must be a WindowMaterial:Glazing or WindowMaterial:Glazing:RefractionExtinctionMethod","Gap between storm glass layer and adjacent glass layer is assumed to be filled","with Air","",),"GlazingMaterialName"))
        self.InsertField(FieldReal(self,"Distance Between Storm Glass Layer and Adjacent Glass","0.050","","",0.5,0.0,""))
        self.InsertField(FieldInt(self,"Month that Storm Glass Layer is Put On",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Day of Month that Storm Glass Layer is Put On",0,"",1,31,"",""))
        self.InsertField(FieldInt(self,"Month that Storm Glass Layer is Taken Off",0,"",1,12,"",""))
        self.InsertField(FieldInt(self,"Day of Month that Storm Glass Layer is Taken Off",0,"",1,31,"",""))


        self.insertMemo(("This is a movable exterior glass layer that is usually applied in the winter","and removed in the summer.",))
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("WindowProperty:StormWindow")





class InternalMass(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","",("To be matched with a construction in this input file","",),"ConstructionNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone the surface is a part of","used to be Interior Environment","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Surface Area",0,"","","",0,""))


        self.insertMemo(("Used to describe internal zone surface area that does not need to be part of geometric","representation. This should be the total surface area exposed to the zone air.",))
        self.addReference("AllHeatTranSurfNames")
        self.addReference("AllHeatTranAngFacNames")
        self.addReference("SurfGroupAndHTSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("InternalMass")





class Shading_Site(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of shading device (S=180,N=0,E=90,W=270)","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Starting coordinate is the Lower Left Corner of the Shade","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used for shading elements such as trees","these items are fixed in space and would not move with relative geometry",))
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Shading:Site")





class Shading_Building(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Azimuth Angle",0,("Facing direction of outside of shading device (S=180,N=0,E=90,W=270)","Units: deg",),0,360,"",""))
        self.InsertField(FieldReal(self,"Tilt Angle","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Starting X Coordinate",0,("Starting coordinate is the Lower Left Corner of the Shade","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Starting Y Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Starting Z Coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Length",0,"","","","",""))
        self.InsertField(FieldReal(self,"Height",0,"","","","",""))


        self.insertMemo(("used for shading elements such as trees, other buildings, parts of this building not being modeled","these items are relative to the current building and would move with relative geometry",))
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Shading:Building")





class Shading_Site_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Transmittance Schedule Name","",("Transmittance schedule for the shading device, defaults to zero (always opaque)","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("shown with 6 vertex coordinates -- extensible object","Rules for vertices are given in GlobalGeometryRules coordinates --","For this object all surface coordinates are in world coordinates.","",),3,"","",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))


        self.insertMemo(("used for shading elements such as trees","these items are fixed in space and would not move with relative geometry",))
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(3)
        self.setClassnameIDD("Shading:Site:Detailed")





class Shading_Building_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Transmittance Schedule Name","",("Transmittance schedule for the shading device, defaults to zero (always opaque)","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("shown with 6 vertex coordinates -- extensible object","Rules for vertices are given in GlobalGeometryRules coordinates --","For this object all surface coordinates are relative to the building origin (0,0,0)","and will rotate with the BUILDING north axis.","",),3,"","",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))


        self.insertMemo(("used for shading elements such as trees, other buildings, parts of this building not being modeled","these items are relative to the current building and would move with relative geometry",))
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(3)
        self.setClassnameIDD("Shading:Building:Detailed")





class Shading_Overhang(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Window or Door Name","","","SubSurfNames"))
        self.InsertField(FieldReal(self,"Height above Window or Door",0,"","","","",""))
        self.InsertField(FieldReal(self,"Tilt Angle from Window/Door","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Left extension from Window/Door Width",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right extension from Window/Door Width",0,("N3 + N4 + Window/Door Width is Overhang Length","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Depth",0,"","","","",""))


        self.insertMemo(("Overhangs are usually flat shading surfaces that reference a window or door.",))
        self.addReference("AttachedShadingSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Shading:Overhang")





class Shading_Overhang_Projection(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Window or Door Name","","","SubSurfNames"))
        self.InsertField(FieldReal(self,"Height above Window or Door",0,"","","","",""))
        self.InsertField(FieldReal(self,"Tilt Angle from Window/Door","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Left extension from Window/Door Width",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right extension from Window/Door Width",0,("N3 + N4 + Window/Door Width is Overhang Length","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Depth as Fraction of Window/Door Height",0,"","","","",""))


        self.insertMemo(("Overhangs are typically flat shading surfaces that reference a window or door.",))
        self.addReference("AttachedShadingSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Shading:Overhang:Projection")





class Shading_Fin(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Window or Door Name","","","SubSurfNames"))
        self.InsertField(FieldReal(self,"Left Extension from Window/Door",0,"","","","",""))
        self.InsertField(FieldReal(self,"Left Distance Above Top of Window",0,"","","","",""))
        self.InsertField(FieldReal(self,"Left Distance Below Bottom of Window",0,("N2 + N3 + height of Window/Door is height of Fin","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Left Tilt Angle from Window/Door","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Left Depth",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right Extension from Window/Door",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right Distance Above Top of Window",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right Distance Below Bottom of Window",0,("N7 + N8 + height of Window/Door is height of Fin","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Right Tilt Angle from Window/Door","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Right Depth",0,"","","","",""))


        self.insertMemo(("Fins are usually shading surfaces that are perpendicular to a window or door.",))
        self.addReference("AttachedShadingSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Shading:Fin")





class Shading_Fin_Projection(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Window or Door Name","","","SubSurfNames"))
        self.InsertField(FieldReal(self,"Left Extension from Window/Door",0,"","","","",""))
        self.InsertField(FieldReal(self,"Left Distance Above Top of Window",0,"","","","",""))
        self.InsertField(FieldReal(self,"Left Distance Below Bottom of Window",0,("N2 + N3 + height of Window/Door is height of Fin","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Left Tilt Angle from Window/Door","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Left Depth as Fraction of Window/Door Width",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right Extension from Window/Door",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right Distance Above Top of Window",0,"","","","",""))
        self.InsertField(FieldReal(self,"Right Distance Below Bottom of Window",0,("N7 + N8 + height of Window/Door is height of Fin","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Right Tilt Angle from Window/Door","90","",0,180,"",""))
        self.InsertField(FieldReal(self,"Right Depth as Fraction of Window/Door Width",0,"","","","",""))


        self.insertMemo(("Fins are usually shading surfaces that are perpendicular to a window or door.",))
        self.addReference("AttachedShadingSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(-1)
        self.setClassnameIDD("Shading:Fin:Projection")





class Shading_Zone_Detailed(ObjectVertice):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Base Surface Name","","","SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Transmittance Schedule Name","",("Transmittance schedule for the shading device, defaults to zero (always opaque)","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Number of Vertices","autocalculate",("shown with 6 vertex coordinates -- extensible object","vertices are given in GlobalGeometryRules coordinates -- if relative, all surface coordinates","are *relative* to the Zone Origin.  if world, then building and zone origins are used","for some internal calculations, but all coordinates are given in an *absolute* system.","",),3,"","",""))
        self.InsertField(FieldReal(self,"Vertex 1 X-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Y-coordinate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Vertex 1 Z-coordinate",0,"","","","",""))


        self.insertMemo(("used For fins, overhangs, elements that shade the building, are attached to the building","but are not part of the heat transfer calculations",))
        self.addReference("AttachedShadingSurfNames")
        self.addReference("AllShadingAndHTSurfNames")
        self.addReference("AllShadingSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Thermal Zones and Surfaces") 
        self.setExtensible(3)
        self.setClassnameIDD("Shading:Zone:Detailed")





class ShadingProperty_Reflectance(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Shading Surface Name","","","AllShadingSurfNames"))
        self.InsertField(FieldReal(self,"Diffuse Solar Reflectance of Unglazed Part of Shading Surface","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Diffuse Visible Reflectance of Unglazed Part of Shading Surface","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Shading Surface That Is Glazed","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Glazing Construction Name","",("Required if Fraction of Shading Surface That Is Glazed > 0.0","",)))


        self.insertMemo(("If this object is not defined for a shading surface the default values","listed in following fields will be used in the solar reflection calculation.",))
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(-1)
        self.setClassnameIDD("ShadingProperty:Reflectance")





class SurfaceControl_MovableInsulation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Insulation Type","","",["Outside","Inside",]))
        self.InsertField(FieldObjectlist(self,"Surface Name","","","SurfaceNames"))
        self.InsertField(FieldText(self,"Material Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Exterior or Interior Insulation on surfaces",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceControl:MovableInsulation")





class SurfaceProperty_OtherSideCoefficients(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Combined Convective/Radiative Film Coefficient",0,("if>0, this field becomes the exterior convective/radiative film coefficient","and the other fields are used to calculate the outdoor air temperature","then exterior surface temperature based on outdoor air and specified coefficient","if<=0, then remaining fields calculate the outside surface temperature","following fields are used in the equation:","SurfTemp=N7*TempZone + N4*OutdoorDry-bulb + N2*N3 + GroundTemp*N5 + WindSpeed*N6*OutdoorDry-bulb","",),"","","",""))
        self.InsertField(FieldReal(self,"Constant Temperature","0",("This parameter will be overwritten by the values from the Constant Temperature Schedule Name (below) if one is present","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Constant Temperature Coefficient","1",("This coefficient is used even with a Schedule.  It should normally be 1.0 in that case","",),"","","",""))
        self.InsertField(FieldReal(self,"External Dry-Bulb Temperature Coefficient","0","","","","",""))
        self.InsertField(FieldReal(self,"Ground Temperature Coefficient","0","","","","",""))
        self.InsertField(FieldReal(self,"Wind Speed Coefficient","0","","","","",""))
        self.InsertField(FieldReal(self,"Zone Air Temperature Coefficient","0","","","","",""))
        self.InsertField(FieldObjectlist(self,"Constant Temperature Schedule Name","",("Name of schedule for values of constant temperature.","Schedule values replace any value specified in the field Constant Temperature.","",),"ScheduleNames"))
        self.InsertField(FieldYesNo(self,"Sinusoidal Variation of Constant Temperature Coefficient","No",("Optionally used to vary Constant Temperature Coefficient with unitary sine wave","",),["Yes","No",]))
        self.InsertField(FieldReal(self,"Period of Sinusoidal Variation","24",("Use with sinusoidal variation to define the time period","Units: hr",),"","",0,""))


        self.insertMemo(("This object sets the other side conditions for a surface in a variety of ways.",))
        self.addReference("OSCNames")
        self.addReference("OutFaceEnvNames")
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceProperty:OtherSideCoefficients")





class SurfaceProperty_OtherSideConditionsModel(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Type of Modeling","GapConvectionRadiation",("GapConvectionRadiation provides boundary conditions for convection","and linearized thermal radiation across a gap or cavity","on the other side of the surface that are modeled sperately.","",),["GapConvectionRadiation",]))


        self.insertMemo(("This object sets up modifying the other side conditions for a surface from other model results.",))
        self.addReference("OSCMNames")
        self.addReference("OutFaceEnvNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceProperty:OtherSideConditionsModel")





class SurfaceProperty_ConvectionCoefficients(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Surface Name","","","SurfaceNames"))
        self.InsertField(FieldChoice(self,"Convection Coefficient 1 Location","","",["Outside","Inside",]))
        self.InsertField(FieldChoice(self,"Convection Coefficient 1 Type","","",["Value","Schedule","Simple","Detailed","BLAST","TARP","DOE-2","MoWitt",]))
        self.InsertField(FieldReal(self,"Convection Coefficient 1",0,("used if Convection Type=Value, then minimum must be > 0.0, Maximum <= 1000.","Units: W/m2-K",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Convection Coefficient 1 Schedule Name","",("used if Convection Type=Schedule","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Convection Coefficient 2 Location","","",["Outside","Inside",]))
        self.InsertField(FieldChoice(self,"Convection Coefficient 2 Type","","",["Value","Schedule","Simple","Detailed","BLAST","TARP","DOE-2","MoWitt",]))
        self.InsertField(FieldReal(self,"Convection Coefficient 2",".1",("used if Convection Type=Value, then minimum must be > 0.0, Maximum <= 1000.","Units: W/m2-K",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Convection Coefficient 2 Schedule Name","",("used if Convection Type=Schedule","",),"ScheduleNames"))


        self.insertMemo(("Allow user settable interior and/or exterior convection coefficients.","Note that some other factors may limit the lower bounds for these values, such as","for windows, the interior convection coefficient must be >.28,","for trombe wall algorithm selection (zone), the interior convection coefficient must be >.1","for detailed interior convection, the lower limit is also .1",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceProperty:ConvectionCoefficients")





class SurfaceProperty_ConvectionCoefficients_MultipleSurface(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Surface Type","","",["AllExteriorSurfaces","AllExteriorWindows","AllExteriorWalls","AllExteriorRoofs","AllExteriorFloors","AllInteriorSurfaces","AllInteriorWalls","AllInteriorWindows","AllInteriorCeilings","AllInteriorFloors",]))
        self.InsertField(FieldChoice(self,"Convection Coefficient 1 Location","","",["Outside","Inside",]))
        self.InsertField(FieldChoice(self,"Convection Coefficient 1 Type","","",["Value","Schedule","Simple","Detailed","BLAST","TARP","DOE-2","MoWitt",]))
        self.InsertField(FieldReal(self,"Convection Coefficient 1",0,("used if Convection Value Type=value, then minimum must be > 0.0, Maximum <= 1000.","Units: W/m2-K",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Convection Coefficient 1 Schedule Name","",("used if Convection Coefficient Type=Schedule","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Convection Coefficient 2 Location","","",["Outside","Inside",]))
        self.InsertField(FieldChoice(self,"Convection Coefficient 2 Type","","",["Value","Schedule","Simple","Detailed","BLAST","TARP","DOE-2","MoWitt",]))
        self.InsertField(FieldReal(self,"Convection Coefficient 2",".1",("used if Convection Value Type=value, then minimum must be > 0.0, maximum <= 1000.","Units: W/m2-K",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Convection Coefficient 2 Schedule Name","",("used if Convection Coefficient Type=Schedule","",),"ScheduleNames"))


        self.insertMemo(("Allow user settable interior and/or exterior convection coefficients.","Note that some other factors may limit the lower bounds for these values, such as","for windows, the interior convection coefficient must be >.28,","for trombe wall algorithm selection (zone), the interior convection coefficient must be >.1","for detailed interior convection, the lower limit is also .1",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceProperty:ConvectionCoefficients:MultipleSurface")





class SurfaceProperties_VaporCoefficients(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Surface Name","","","SurfaceNames"))
        self.InsertField(FieldYesNo(self,"Constant External Vapor Transfer Coefficient","No","",["Yes","No",]))
        self.InsertField(FieldReal(self,"External Vapor Coefficient Value","0",("Units are kg/Pa.s.m2","",),"","","",""))
        self.InsertField(FieldYesNo(self,"Constant Internal vapor Transfer Coefficient","No","",["Yes","No",]))
        self.InsertField(FieldReal(self,"Internal Vapor Coefficient Value","0",("Units are kg/Pa.s.m2","",),"","","",""))


        self.insertMemo(("The interior and external vapor transfer coefficients.","Normally these value are calculated using the heat convection coefficient values.","Use this object to used fixed constant values.","Units are kg/Pa.s.m2","This will only work with the CombinedHeatAndMoistureFiniteElement algorithm for surfaces.","Other algorithms will ignore these coefficients",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(-1)
        self.setClassnameIDD("SurfaceProperties:VaporCoefficients")





class SurfaceProperty_ExteriorNaturalVentedCavity(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Boundary Conditions Model Name","",("Enter the name of a SurfaceProperty:OtherSideConditionsModel object","",),"OSCMNames"))
        self.InsertField(FieldReal(self,"Area Fraction of Openings",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Thermal Emissivity of Exterior Baffle Material",0,"",0,1,"",""))
        self.InsertField(FieldReal(self,"Solar Absorbtivity of Exterior Baffle",0,"",0,1,"",""))
        self.InsertField(FieldReal(self,"Height Scale for Buoyancy-Driven Ventilation",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Effective Thickness of Cavity Behind Exterior Baffle",0,("if corrugated, use average depth","Units: m",),"","",0.,""))
        self.InsertField(FieldReal(self,"Ratio of Actual Surface Area to Projected Surface Area","1.0",("this parameter is used to help account for corrugations in the collector","Units: dimensionless",),0.8,2.0,"",""))
        self.InsertField(FieldChoice(self,"Roughness of Exterior Surface","","",["VeryRough","Rough","MediumRough","MediumSmooth","Smooth","VerySmooth",]))
        self.InsertField(FieldReal(self,"Effectiveness for Perforations with Respect to Wind","0.25","","",1.5,0,""))
        self.InsertField(FieldReal(self,"Discharge Coefficient for Openings with Respect to Buoyancy Driven Flow","0.65","","",1.5,0.0,""))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","","","AllShadingAndHTSurfNames"))


        self.addReference("VentedCavityNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Advanced Surface Concepts") 
        self.setExtensible(1)
        self.setClassnameIDD("SurfaceProperty:ExteriorNaturalVentedCavity")





class ZoneProperty_UserViewFactors(ObjectViewFactor):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Zone Name","",""))
        self.InsertField(FieldInt(self,"i 1",0,("index for following Fij","the view factor numbers are triples in the order i, j, Fij.","",),"","","",""))
        self.InsertField(FieldInt(self,"j 1",0,("index for following Fij","the view factor numbers are triples in the order i, j, Fij.","",),"","","",""))
        self.InsertField(FieldReal(self,"Fij 1",0,"","",1.0,"",""))


        self.addReference("ZoneNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(3)
        self.setClassnameIDD("ZoneProperty:UserViewFactors")





class RoomAirModelType(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldChoice(self,"Room-Air Modeling Type","Mixing",("Complete mixing air model","UserDefined Room Air Temperature Patterns","needs RoomAir:TemperaturePattern:UserDefined object referencing this Zone","Mundt roomair model for displacement ventilation with single floor air node","needs RoomAirSettings:OneNodeDisplacementVentilation object referencing this Zone","(UCSD three-node displacement ventilation model)","needs RoomAirSettings:ThreeNodeDisplacementVentilation object referencing this Zone","(UCSD two-zone cross ventilation model)","needs RoomAirSettings:CrossVentilation object referencing this Zone","2-Node UFAD model for interior zones","needs RoomAirSettings:UnderFloorAirDistributionInterior object referencing this Zone","(2-Node UFAD model for exterior zones)","needs RoomAirSettings:UnderFloorAirDistributionExterior object referencing this Zone","",),["Mixing","UserDefined","OneNodeDisplacementVentilation","ThreeNodeDisplacementVentilation","CrossVentilation","UnderFloorAirDistributionInterior","UnderFloorAirDistributionExterior",]))
        self.InsertField(FieldChoice(self,"Air Temperature Coupling Strategy","Direct","",["Direct","Indirect",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAirModelType")





class RoomAir_TemperaturePattern_UserDefined(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Pattern Control Schedule Name","",("The schedule should contain integer values that","correspond to unique Control Integer fields in","one of the RoomAir:TemperaturePattern:* objects.","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAir:TemperaturePattern:UserDefined")





class RoomAir_TemperaturePattern_ConstantGradient(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldInt(self,"Control Integer for Pattern Control Schedule Name",0,("reference this entry in Schedule Name","",),"","","",""))
        self.InsertField(FieldReal(self,"Thermostat Offset",0,("= (Temp at thermostat- Mean Air Temp)","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Return Air Offset",0,("= (Tleaving - Mean Air Temp )","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Exhaust Air Offset",0,("= (Texhaust - Mean Air Temp) deg C","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature Gradient",0,("Slope of temperature change in vertical direction","Units: K/m",),"","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAir:TemperaturePattern:ConstantGradient")





class RoomAir_TemperaturePattern_TwoGradient(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldInt(self,"Control Integer for Pattern Control Schedule Name",0,("reference this entry in Schedule Name","",),"","","",""))
        self.InsertField(FieldReal(self,"Thermostat Height",0,("= Distance from floor of zone","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Return Air Height",0,("= Distance from floor of zone","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Exhaust Air Height",0,("= Distance from floor of zone","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature Gradient Lower Bound",0,("Slope of temperature change in vertical direction","Units: K/m",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature Gradient Upper  Bound",0,("Slope of temperature change in vertical direction","Units: K/m",),"","","",""))
        self.InsertField(FieldChoice(self,"Gradient Interpolation Mode","","",["OutdoorDryBulbTemperature","ZoneDryBulbTemperature","ZoneAndOutdoorTemperatureDifference","SensibleCoolingLoad","SensibleHeatingLoad",]))
        self.InsertField(FieldReal(self,"Upper Temperature Bound",0,"","","","",""))
        self.InsertField(FieldReal(self,"Lower Temperature Bound",0,"","","","",""))
        self.InsertField(FieldReal(self,"Upper Heat Rate Bound",0,"","","","",""))
        self.InsertField(FieldReal(self,"Lower Heat Rate Bound",0,"","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAir:TemperaturePattern:TwoGradient")





class RoomAir_TemperaturePattern_NondimensionalHeight(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldInt(self,"Control Integer for Pattern Control Schedule Name",0,("this value should appear in as a schedule value","",),"","","",""))
        self.InsertField(FieldReal(self,"Thermostat Offset",0,("= (Temp at thermostat- Mean Air Temp)","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Return Air Offset",0,("= (Temp leaving - Mean Air Temp ) deg C","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Exhaust Air Offset",0,("= (Temp exhaust - Mean Air Temp) deg C","the remaining fields have pairs that describe the relative","temperature pattern in the vertical direction of a zone","Zeta is the nondimensional height (in z-direction). on [0..1]","DeltaTai =  (Tai - MAT) in units of deg. C","relative deg C on [-10.0 .. 20.0 ]","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Pair 1 Zeta Nondimensional Height",0,"","","","",""))
        self.InsertField(FieldReal(self,"Pair 1 Delta Adjacent Air Temperature",0,"",-10.0,20.0,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(2)
        self.setClassnameIDD("RoomAir:TemperaturePattern:NondimensionalHeight")





class RoomAir_TemperaturePattern_SurfaceMapping(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldInt(self,"Control Integer for Pattern Control Schedule Name",0,("reference this entry in schedule","",),"","","",""))
        self.InsertField(FieldReal(self,"Thermostat Offset",0,("= (Temp at thermostat- Mean Air Temp)","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Return Air Offset",0,("= (Tleaving - Mean Air Temp ) deg C","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Exhaust Air Offset",0,("= (Texhaust - Mean Air Temp) deg C","Units: deltaC",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Surface Name Pair 1","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Delta Adjacent Air Temperature Pair 1",0,"","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(2)
        self.setClassnameIDD("RoomAir:TemperaturePattern:SurfaceMapping")





class RoomAir_Node(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Node Type","","",["Inlet","Floor","Control","Ceiling","MundtRoom","Return",]))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Height of Nodal Control Volume Center",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 2 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 3 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 4 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 5 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 6 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 7 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 8 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 9 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 10 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 11 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 12 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 13 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 14 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 15 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 16 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 17 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 18 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 19 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 20 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldObjectlist(self,"Surface 21 Name","","","AllHeatTranSurfNames"))


        self.insertMemo(("define an air node for some types of nodal air models",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAir:Node")





class RoomAirSettings_OneNodeDisplacementVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Fraction of Convective Internal Loads Added to Floor Air",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Infiltration Internal Loads Added to Floor Air",0,"",0.0,1.0,"",""))


        self.insertMemo(("The Mundt model for displacement ventilation",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAirSettings:OneNodeDisplacementVentilation")





class RoomAirSettings_ThreeNodeDisplacementVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of Zone being described. Any existing zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Gain Distribution Schedule Name","",("Distribution of the convective heat gains between the occupied and mixed zones.","0<= Accepted Value <= 1.","In the DV model 1 means all convective gains in the lower layer.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Number of Plumes per Occupant","1.0",("Used only in the UCSD displacement ventilation model.","Effective number of separate plumes per occupant in the occupied zone.","Plumes that merge together in the occupied zone count as one.","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Thermostat Height","1.1",("Height of thermostat/temperature control sensor above floor","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Comfort Height","1.1",("Height at which air temperature is calculated for comfort purposes","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Temperature Difference Threshold for Reporting","0.4",("Minimum temperature difference between predicted upper and lower layer","temperatures above which DV auxilliary outputs are calculated.","These outputs are 'DV Transition Height', 'DV Fraction Min Recommended Flow Rate'","'DV Average Temp Gradient' and 'DV Maximum Temp Gradient'.  They","are set to negative values when the temperature difference is less than the","threshold and the output 'DV Zone Is Mixed' is set to 1","",),0.0,"","",""))


        self.insertMemo(("The UCSD model for Displacement Ventilation",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAirSettings:ThreeNodeDisplacementVentilation")





class RoomAirSettings_CrossVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of Zone being described. Any existing zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Gain Distribution Schedule Name","",("Distribution of the convective heat gains between the jet and recirculation zones.","0<= Accepted Value <= 1.","In the CV model 1 means all convective gains in the jet region.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Airflow Region Used for Thermal Comfort Evaluation","",("Required field whenever thermal comfort is predicted","defines Air temperature and Airflow velocity that will be used in the Fanger model","conditions must refer to one of the two regions: jet or recirculation","",),["Jet","Recirculation",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAirSettings:CrossVentilation")





class RoomAirSettings_UnderFloorAirDistributionInterior(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of Zone with underfloor air distribution","",),"ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Number of Diffusers","autocalculate",("Total number of diffusers in this zone","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Power per Plume","autocalculate","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Effective Area of Diffuser","Autocalculate","","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Diffuser Slot Angle from Vertical","Autocalculate","",0.0,90.,"",""))
        self.InsertField(FieldReal(self,"Thermostat Height","1.2",("Height of thermostat/temperature control sensor above floor","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Comfort Height","1.1",("Height at which air temperature is calculated for comfort purposes","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Temperature Difference Threshold for Reporting","0.4",("Minimum temperature difference between predicted upper and lower layer","temperatures above which UFAD auxilliary outputs are calculated.","These outputs are 'UF Transition Height'and 'UF Average Temp Gradient'.  They","are set to zero values when the temperature difference is less than the","threshold and the output 'UF Zone Is Mixed' is set to 1","Units: deltaC",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Floor Diffuser Type","Swirl","",["Custom","Swirl","VariableArea","HorizontalSwirl","LinearBarGrille",]))
        self.InsertField(FieldRealAutocalculate(self,"Transition Height","1.7",("user-specified height above floor of boundary between occupied and upper subzones","Units: m",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient A","Autocalculate",("Coefficient A in Formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient B","Autocalculate",("Coefficient B in Formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient C","Autocalculate",("Coefficient C in Formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient D","Autocalculate",("Coefficient D in Formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient E","Autocalculate",("Coefficient E in Formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))


        self.setRequired(False)
        self.setMinfields(15)
        self.setGroup("Room Air Models") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAirSettings:UnderFloorAirDistributionInterior")





class RoomAirSettings_UnderFloorAirDistributionExterior(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of Zone being described. Any existing zone name","",),"ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Number of Diffusers per Zone","Autocalculate","","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Power per Plume","autocalculate","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Effective Area of Diffuser","Autocalculate","","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Diffuser Slot Angle from Vertical","autocalculate","",0.0,90.,"",""))
        self.InsertField(FieldReal(self,"Thermostat Height","1.2",("Height of thermostat/temperature control sensor above floor","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Comfort Height","1.1",("Height at which Air temperature is calculated for comfort purposes","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Temperature Difference Threshold for Reporting","0.4",("Minimum temperature difference between upper and lower layer","temperatures above which UFAD auxilliary outputs are calculated.","These outputs are 'UF Transition Height'and 'UF Average Temp Gradient'.  They","are set to zero values when the temperature difference is less than the","threshold and the output 'UF Zone Is Mixed' is set to 1","Units: deltaC",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Floor diffuser type","Swirl","",["Custom","Swirl","VariableArea","HorizontalSwirl","LinearBarGrille",]))
        self.InsertField(FieldRealAutocalculate(self,"Transition Height","1.7",("User-specified height above floor of boundary between occupied and upper subzones","Units: m",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient A in formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Autocalculate",("Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient B in formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Autocalculate",("Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient C in formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Autocalculate",("Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient D in formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Autocalculate",("Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient E in formula Kc = A*Gamma**B + C + D*Gamma + E*Gamma**2","Autocalculate",("Kc is the fraction of the total zone load attributable to the lower subzone","",),"","","",""))


        self.setRequired(False)
        self.setMinfields(15)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("RoomAirSettings:UnderFloorAirDistributionExterior")





class People(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Number of People Schedule Name","",("units in schedule should be fraction applied to number of people (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Number of People Calculation Method","People",("The entered calculation method is used to create the maximum number of people","for this set of attributes (i.e. sensible fraction, schedule, etc)","Choices: People -- simply enter number of occupants.","People per Zone Floor Area -- enter the number to apply.  Value * Floor Area = Number of people","Zone Floor Area per Person -- enter the number to apply.  Floor Area / Value = Number of people","",),["People","People/Area","Area/Person",]))
        self.InsertField(FieldReal(self,"Number of People",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"People per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Zone Floor Area per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Fraction Radiant",0,"",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Sensible Heat Fraction","autocalculate",("if input, overrides program calculated sensible/latent split","",),0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Activity Level Schedule Name","",("Note that W has to be converted to mets in TC routine","units in schedule are W/person","",),"ScheduleNames"))
        self.InsertField(FieldYesNo(self,"Enable ASHRAE 55 Comfort Warnings","No","",["Yes","No",]))
        self.InsertField(FieldChoice(self,"Mean Radiant Temperature Calculation Type","ZoneAveraged",("optional (only required for thermal comfort runs)","",),["ZoneAveraged","SurfaceWeighted","AngleFactor",]))
        self.InsertField(FieldObjectlist(self,"Surface Name/Angle Factor List Name","",("optional (only required for thermal comfort runs)","",),"AllHeatTranAngFacNames"))
        self.InsertField(FieldObjectlist(self,"Work Efficiency Schedule Name","",("units in schedule are 0.0 to 1.0","optional (only required for thermal comfort runs)","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Clothing Insulation Schedule Name","",("use *Clo* from ASHRAE or Thermal Comfort guides","optional (only required for thermal comfort runs)","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Air Velocity Schedule Name","",("units in the schedule are m/s","optional (only required for thermal comfort runs)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Thermal Comfort Model 1 Type","",("optional (only needed for people thermal comfort results reporting)","",),["Fanger","Pierce","KSU",]))
        self.InsertField(FieldChoice(self,"Thermal Comfort Model 2 Type","",("optional (second type of thermal comfort model and results reporting)","",),["Fanger","Pierce","KSU",]))
        self.InsertField(FieldChoice(self,"Thermal Comfort Model 3 Type","",("optional (third thermal comfort model and report type)","",),["Fanger","Pierce","KSU",]))


        self.insertMemo(("Sets internal gains for occupants in the zone.",))
        self.addReference("PeopleNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("People")





class ComfortViewFactorAngles(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 1",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 2 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 2",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 3 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 3",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 4 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 4",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 5 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 5",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 6 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 6",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 7 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 7",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 8 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 8",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 9 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 9",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 10 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 10",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 11 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 11",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 12 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 12",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 13 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 13",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 14 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 14",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 15 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 15",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 16 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 16",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 17 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 17",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 18 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 18",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 19 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 19",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 20 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Angle Factor 20",0,"",0.0,1.0,"",""))


        self.addReference("AllHeatTranAngFacNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("ComfortViewFactorAngles")





class Lights(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in schedule should be fraction applied to design level of lights, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Level Calculation Method","LightingLevel",("The entered calculation method is used to create the maximum amount of lights","for this set of attributes","Choices: LightingLevel => Lighting Level -- simply enter watts of lights","Watts/Area => Watts per Zone Floor Area -- enter the number to apply.  Value * Floor Area = Lights","Watts/Person => Watts per Person -- enter the number to apply.  Value * Occupants = Lights","",),["LightingLevel","Watts/Area","Watts/Person",]))
        self.InsertField(FieldReal(self,"Lighting Level",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Return Air Fraction","0",("Used only for sizing calculation if return-air-fraction","coefficients are specified.","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Radiant","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Visible","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Replaceable","1.0",("For Daylighting:Controls and Daylighting:DElight:Controls,","must be 0 or 1:  0 = no dimming control, 1 = full dimming control","",),0.0,1.0,"",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))
        self.InsertField(FieldYesNo(self,"Return Air Fraction Calculated from Plenum Temperature","No","",["Yes","No",]))
        self.InsertField(FieldReal(self,"Return Air Fraction Function of Plenum Temperature Coefficient 1","0.0",("Used only if Return Air Fraction Is Calculated from Plenum Temperature = Yes","Equation is Return Air Fraction = Coefficient#1 - Coefficient#2 X PlenumTemp(degC)","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Return Air Fraction Function of Plenum Temperature Coefficient 2","0.0",("Used only if Return Air Fraction Is Calculated from Plenum Temperature = Yes","Equation is Return Air Fraction = Coefficient#1 - Coefficient#2 X PlenumTemp(degC)","Units: 1/K",),0.0,"","",""))


        self.insertMemo(("Sets internal gains for lights in the zone.",))
        self.addReference("LightsNames")
        self.setRequired(False)
        self.setMinfields(10)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("Lights")





class ElectricEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in schedule should be fraction applied to design level of electric equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Level Calculation Method","EquipmentLevel",("The entered calculation method is used to create the maximum amount of electric equipment","for this set of attributes","Choices: EquipmentLevel => Equipment Level -- simply enter watts of equipment","Watts/Area => Watts per Zone Floor Area -- enter the number to apply.  Value * Floor Area = Equipment Level","Watts/Person => Watts per Person -- enter the number to apply.  Value * Occupants = Equipment Level","",),["EquipmentLevel","Watts/Area","Watts/Person",]))
        self.InsertField(FieldReal(self,"Design Level",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Fraction Latent","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Radiant","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Lost","0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.insertMemo(("Sets internal gains for electric equipment in the zone.",))
        self.addReference("ElectricEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("ElectricEquipment")





class GasEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in Schedule should be fraction applied to design level of gas equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Level Calculation Method","EquipmentLevel",("The entered calculation method is used to create the maximum amount of gas equipment","for this set of attributes","Choices: EquipmentLevel => Equipment Level -- simply enter watts of equipment","Watts/Area => Watts per Zone Floor Area -- enter the number to apply.  Value * Floor Area = Equipment Level","Watts/Person => Watts per Person -- enter the number to apply.  Value * Occupants = Equipment Level","",),["EquipmentLevel","Watts/Area","Watts/Person",]))
        self.InsertField(FieldReal(self,"Design Level",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Fraction Latent","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Radiant","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Lost","0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.insertMemo(("Sets internal gains for gas equipment in the zone.",))
        self.addReference("GasEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("GasEquipment")





class HotWaterEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in Schedule should be fraction applied to design level of hot water equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Level Calculation Method","EquipmentLevel",("The entered calculation method is used to create the maximum amount of hot water equipment","for this set of attributes","Choices: Equipment Level -- simply enter watts of equipment","Watts/Area - Watts per Zone Floor Area -- enter the number to apply.  Value * Floor Area = Equipment Level","Watts/Person - Watts per Persona -- enter the number to apply.  Value * Occupants = Equipment Level","",),["EquipmentLevel","Watts/Area","Watts/Person",]))
        self.InsertField(FieldReal(self,"Design Level",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Fraction Latent","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Radiant","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Lost","0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.insertMemo(("Sets internal gains for hot water equipment in the zone.",))
        self.addReference("HotWaterEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("HotWaterEquipment")





class SteamEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in Schedule should be fraction applied to design level of steam equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Level Calculation Method","EquipmentLevel",("The entered calculation method is used to create the maximum amount of steam equipment","for this set of attributes","Choices: Equipment Level -- simply enter watts of equipment","Watts/Area - Watts per Zone Floor Area -- enter the number to apply.  Value * Floor Area = Equipment Level","Watts/Person - Watts per Persona -- enter the number to apply.  Value * Occupants = Equipment Level","",),["EquipmentLevel","Watts/Area","Watts/Person",]))
        self.InsertField(FieldReal(self,"Design Level",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Fraction Latent","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Radiant","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Lost","0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.insertMemo(("Sets internal gains for steam equipment in the zone.",))
        self.addReference("SteamEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("SteamEquipment")





class OtherEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in Schedule should be fraction applied to design level of other equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Level Calculation Method","EquipmentLevel",("The entered calculation method is used to create the maximum amount of other equipment.","to set a loss, use a negative value in the following fields.","for this set of attributes","Choices: Equipment Level -- simply enter watts of equipment","Watts/Area - Watts per Zone Floor Area -- enter the number to apply.  Value * Floor Area = Equipment Level","Watts/Person - Watts per Persona -- enter the number to apply.  Value * Occupants = Equipment Level","",),["EquipmentLevel","Watts/Area","Watts/Person",]))
        self.InsertField(FieldReal(self,"Design Level",0,"","","","",""))
        self.InsertField(FieldReal(self,"Watts per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Watts per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Fraction Latent","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Radiant","0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction Lost","0","",0.0,1.0,"",""))


        self.insertMemo(("Sets internal gains or losses for *other* equipment in the zone.",))
        self.addReference("OtherEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Internal Gains") 
        self.setExtensible(-1)
        self.setClassnameIDD("OtherEquipment")





class ZoneBaseboard_OutdoorTemperatureControlled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in Schedule should be fraction applied to capacity of the baseboard heat equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Capacity at Low Temperature",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Low Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Capacity at High Temperature",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"High Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fraction Radiant","0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.addReference("BaseboardHeatNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneBaseboard:OutdoorTemperatureControlled")





class Daylighting_Controls(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldInt(self,"Total Daylighting Reference Points","1","",1,2,"",""))
        self.InsertField(FieldReal(self,"X-Coordinate of First Reference Point",0,"","","","",""))
        self.InsertField(FieldReal(self,"Y-Coordinate of First Reference Point",0,"","","","",""))
        self.InsertField(FieldReal(self,"Z-Coordinate of First Reference Point","0.8","","","","",""))
        self.InsertField(FieldReal(self,"X-Coordinate of Second Reference Point",0,("Required if Total Daylighting Reference Points = 2","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Y-Coordinate of Second Reference Point",0,("Required if Total Daylighting Reference Points = 2","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Z-Coordinate of Second Reference Point","0.8","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Fraction of Zone Controlled by First Reference Point","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Zone Controlled by Second Reference Point","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Illuminance Setpoint at First Reference Point","500","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Illuminance Setpoint at Second Reference Point","500","",0.0,"","",""))
        self.InsertField(FieldInt(self,"Lighting Control Type","1",("1=continuous,2=stepped,3=continuous/off","",),1,3,"",""))
        self.InsertField(FieldReal(self,"Glare Calculation Azimuth Angle of View Direction Clockwise from Zone y-Axis",0,"",0,360,"",""))
        self.InsertField(FieldReal(self,"Maximum Allowable Discomfort Glare Index","22",("The default is for general office work","",),1,"","",""))
        self.InsertField(FieldReal(self,"Minimum Input Power Fraction for Continuous Dimming Control","0.3","",0.0,0.6,"",""))
        self.InsertField(FieldReal(self,"Minimum Light Output Fraction for Continuous Dimming Control","0.2","",0.0,0.6,"",""))
        self.InsertField(FieldInt(self,"Number of Stepped Control Steps","1",("for Lighting Control Type=2, this field cannot be zero.","",),"","","",""))
        self.InsertField(FieldReal(self,"Probability Lighting will be Reset When Needed in Manual Stepped Control","1.0","",0.0,1.0,"",""))


        self.insertMemo(("Dimming of overhead electric lighting is determined from","interior daylight illuminance calculated at one or two reference points.","reference points are given in coordinates specified in the GlobalGeometryRules object","Daylighting Reference Point CoordinateSystem field","Glare from daylighting is also calculated.",))
        self.setRequired(False)
        self.setMinfields(19)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Daylighting:Controls")





class Daylighting_DELight_Controls(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of Thermal Zone hosting the given DElight Zone","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Lighting Control Type","1",("1=continuous,2=stepped,3=continuous/off","",),1,3,"",""))
        self.InsertField(FieldReal(self,"Minimum Input Power Fraction for Continuous Dimming Control","0.3","",0.0,0.6,"",""))
        self.InsertField(FieldReal(self,"Minimum Light Output Fraction for Continuous Dimming Control","0.2","",0.0,0.6,"",""))
        self.InsertField(FieldInt(self,"Number of Stepped Control Steps","1",("for Lighting Control Type=2, this field cannot be zero.","",),"","","",""))
        self.InsertField(FieldReal(self,"Probability Lighting will be Reset When Needed in Manual Stepped Control","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Gridding Resolution",0,("Maximum surface area for nodes in gridding all surfaces in the DElight zone.","All reflective and transmitting surfaces will be subdivided","into approximately square nodes that do not exceed this maximum.","Higher resolution subdivisions require greater calculation times,","but generally produce more accurate results.","Units: m2",),"","",0.0,""))


        self.insertMemo(("Dimming of overhead electric lighting is determined from","DElight calculated interior daylight illuminance at one or more reference points.",))
        self.addReference("DElightZoneNames")
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Daylighting:DELight:Controls")





class Daylighting_DELight_ReferencePoint(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"DElight Name","","","DElightZoneNames"))
        self.InsertField(FieldReal(self,"X-coordinate of Reference Point",0,"","","","",""))
        self.InsertField(FieldReal(self,"Y-coordinate of Reference Point",0,"","","","",""))
        self.InsertField(FieldReal(self,"Z-coordinate of Reference Point",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fraction of Zone Controlled by Reference Point","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Illuminance Setpoint at Reference Point","500","",0.0,"","",""))


        self.insertMemo(("DElight reference point for illuminance calculation and electric lighting dimming.","reference points are given in coordinates specified in the GlobalGeometryRules object","Daylighting Reference Point CoordinateSystem field","There is a maximum number of 100 reference points per DElight daylighting zone.",))
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Daylighting:DELight:ReferencePoint")





class Daylighting_DELight_ComplexFenestration(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Only used for user reference","",)))
        self.InsertField(FieldText(self,"Complex Fenestration Type","",("Used to select the appropriate Complex Fenestration BTDF data","",)))
        self.InsertField(FieldObjectlist(self,"Building Surface Name","",("This is a reference to a valid surface object (such as BuildingSurface:Detailed) hosting","this complex fenestration, analogous to the base surface Name","field for subsurfaces such as Windows.","",),"SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Window Name","",("This is a reference to a valid FenestrationSurface:Detailed window object","used to account for the geometry, and the solar and thermal gains/losses,","of the Complex Fenestration","",),"SubSurfNames"))
        self.InsertField(FieldReal(self,"Fenestration Rotation","0.0",("In-plane counter-clockwise rotation angle of the Complex Fenestration","optical reference direction and the base edge of the Complex Fenestration.","The Rotation will typically be zero when the host and CFS surfaces","are rectangular and height and width edges are aligned.","Units: deg",),"","","",""))


        self.insertMemo(("Used for DElight Complex Fenestration of all types",))
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Daylighting:DELight:ComplexFenestration")





class DaylightingDevice_Tubular(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Dome Name","",("This must refer to a subsurface object of type TubularDaylightDome","",),"SubSurfNames"))
        self.InsertField(FieldObjectlist(self,"Diffuser Name","",("This must refer to a subsurface object of type TubularDaylightDiffuser","Delivery zone is specified in the diffuser object","",),"SubSurfNames"))
        self.InsertField(FieldObjectlist(self,"Construction Name","","","ConstructionNames"))
        self.InsertField(FieldReal(self,"Diameter",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Total Length",0,("The exterior exposed length is the difference between total and sum of zone lengths","Units: m",),"","",0,""))
        self.InsertField(FieldReal(self,"Effective Thermal Resistance","0.28",("R value between TubularDaylightDome and TubularDaylightDiffuser","Units: m2-K/W",),"","",0,""))
        self.InsertField(FieldObjectlist(self,"Transition Zone 1 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Transition Zone 1 Length",0,"",0.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Daylighting") 
        self.setExtensible(2)
        self.setClassnameIDD("DaylightingDevice:Tubular")





class DaylightingDevice_Shelf(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Window Name","","","SubSurfNames"))
        self.InsertField(FieldObjectlist(self,"Inside Shelf Name","",("This must refer to a BuildingSurface:Detailed or equivalent object","This surface must be its own Surface for other side boundary conditions.","",),"SurfaceNames"))
        self.InsertField(FieldObjectlist(self,"Outside Shelf Name","",("This must refer to a Shading:Zone:Detailed object","",),"AttachedShadingSurfNames"))
        self.InsertField(FieldObjectlist(self,"Outside Shelf Construction Name","",("Required if outside shelf is specified","",),"ConstructionNames"))
        self.InsertField(FieldReal(self,"View Factor to Outside Shelf",0,"",0.0,1.0,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("DaylightingDevice:Shelf")





class DaylightingDevice_LightWell(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Exterior Window Name","",""))
        self.InsertField(FieldReal(self,"Height of Well",0,("Distance from Bottom of Window to Bottom of Well","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Perimeter of Bottom of Well",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Area of Bottom of Well",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Visible Reflectance of Well Walls",0,"",0.0,1.0,"",""))


        self.insertMemo(("Applies only to exterior windows in daylighting-controlled zones or","in zones that share an interior window with a daylighting-controlled  zone.","Generally used with skylights.",))
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("DaylightingDevice:LightWell")





class Output_IlluminanceMap(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Z height","0.0","","","","",""))
        self.InsertField(FieldReal(self,"X Minimum Coordinate","0.0","","","","",""))
        self.InsertField(FieldReal(self,"X Maximum Coordinate","1.0","","","","",""))
        self.InsertField(FieldInt(self,"Number of X Grid Points","2","","",10,0,""))
        self.InsertField(FieldReal(self,"Y Minimum Coordinate","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Y Maximum Coordinate","1.0","","","","",""))
        self.InsertField(FieldInt(self,"Number of Y Grid Points","2","","",10,0,""))


        self.insertMemo(("reference points are given in coordinates specified in the GlobalGeometryRules object","Daylighting Reference Point CoordinateSystem field",))
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Daylighting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:IlluminanceMap")





class OutputControl_IlluminanceMap_Style(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Column Separator","Comma","",["Comma","Tab","Fixed",]))


        self.insertMemo(("default style for the Daylighting Illuminance Map is comma -- this works well for","importing into spreadsheet programs such as Excel(tm) but not so well for word","processing progams -- there tab may be a better choice.  fixed puts spaces between","the *columns*",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("OutputControl:IlluminanceMap:Style")





class ZoneInfiltration_DesignFlowRate(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Flow Rate Calculation Method","Flow/Zone",("The entered calculation method is used to create the maximum amount of infiltration","for this set of attributes","Choices: Flow/Zone => Design Flow Rate -- simply enter Design Flow Rate","Flow/Area => Flow per Zone Floor Area - Value * Floor Area (zone) = Design Flow Rate","Flow/ExteriorArea => Flow per Exterior Surface Area - Value * Exterior Surface Area (zone) = Design Flow Rate","Flow/ExteriorWallArea => Flow per Exterior Surface Area - Value * Exterior Wall Surface Area (zone) = Design Flow Rate","AirChanges/Hour => Air Changes per Hour - Value * Floor Volume (zone) adjusted for m3/s = Design Volume Flow Rate"," *Idesign* in Equation is the result.","",),["Flow/Zone","Flow/Area","Flow/ExteriorArea","Flow/ExteriorWallArea","AirChanges/Hour",]))
        self.InsertField(FieldReal(self,"Design Flow Rate",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow per Exterior Surface Area",0,("use key Flow/ExteriorArea for all exterior surface area","use key Flow/ExteriorWallArea to include only exterior wall area","Units: m3/s-m2",),0,"","",""))
        self.InsertField(FieldReal(self,"Air Changes per Hour",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Constant Term Coefficient","1",(" *A* in Equation","",),0,"","",""))
        self.InsertField(FieldReal(self,"Temperature Term Coefficient","0",(" *B* in Equation","",),0,"","",""))
        self.InsertField(FieldReal(self,"Velocity Term Coefficient","0",(" *C* in Equation","",),0,"","",""))
        self.InsertField(FieldReal(self,"Velocity Squared Term Coefficient","0",(" *D* in Equation","",),0,"","",""))


        self.insertMemo((" Infiltration is specified as a design level which is modified by a Schedule fraction, temperature difference and wind speed:"," Infiltration=Idesign * FSchedule * (A + B*|(Tzone-Todb)| + C*WindSpd + D * WindSpd**2)",))
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneInfiltration:DesignFlowRate")





class ZoneInfiltration_EffectiveLeakageArea(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Effective Air Leakage Area",0,("*AL* in Equation","units are cm2 (square centimeters)","",),"","",0,""))
        self.InsertField(FieldReal(self,"Stack Coefficient",0,("*Cs* in Equation","",),"","",0,""))
        self.InsertField(FieldReal(self,"Wind Coefficient",0,("*Cw* in Equation","",),"","",0,""))


        self.insertMemo((" Infiltration is specified as effective leakage area at 4 Pa, schedule fraction, stack and wind coefficients, and"," is a function of temperature difference and wind speed:"," Infiltration=FSchedule * (AL /1000) SQRT(Cs*|(Tzone-Todb)| +  Cw*WindSpd**2 )",))
        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneInfiltration:EffectiveLeakageArea")





class ZoneInfiltration_FlowCoefficient(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Flow Coefficient",0,("*c* in Equation","",),"","",0,""))
        self.InsertField(FieldReal(self,"Stack Coefficient",0,("*Cs* in Equation","",),"","",0,""))
        self.InsertField(FieldReal(self,"Pressure Exponent","0.67",("*n* in Equation","",),"","",0,""))
        self.InsertField(FieldReal(self,"Wind Coefficient",0,("*Cw* in Equation","",),"","",0,""))
        self.InsertField(FieldReal(self,"Shelter Factor",0,("*s* in Equation","",),"","",0,""))


        self.insertMemo((" Infiltration is specified as flow coefficient, schedule fraction, stack and wind coefficients, and"," is a function of temperature difference and wind speed:"," Infiltration=FSchedule * SQRT( (c * Cs*|(Tzone-Todb)|**n)**2 + (c* Cw*(s * WindSpd)**2n)**2 )",))
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneInfiltration:FlowCoefficient")





class ZoneVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Flow Rate Calculation Method","Flow/Zone",("The entered calculation method is used to create the maximum amount of ventilation","for this set of attributes","Choices: Flow/Zone => Design Flow Rate -- simply enter Design Flow Rate","Flow/Area => Flow Rate per Zone Floor Area - Value * Floor Area (zone) = Design Flow Rate","Flow/Person => Flow Rate per Person - Value * #people = Design Flow Rate","AirChanges/Hour => Air Changes per Hour - Value * Floor Volume (zone) adjusted for m3/s = Design Volume Flow Rate"," *Vdesign* in Equation is the result.","",),["Flow/Zone","Flow/Area","Flow/Person","AirChanges/Hour",]))
        self.InsertField(FieldReal(self,"Design Flow Rate",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow Rate per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow Rate per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Air Changes per Hour",0,"",0,"","",""))
        self.InsertField(FieldChoice(self,"Ventilation Type","Natural","",["Natural","Intake","Exhaust",]))
        self.InsertField(FieldReal(self,"Fan Pressure Rise","0",("pressure rise across the fan","Units: Pa",),0,"","",""))
        self.InsertField(FieldReal(self,"Fan Total Efficiency","1","","","",0,""))
        self.InsertField(FieldReal(self,"Constant Term Coefficient","1",(" *A* in Equation","",),0,"","",""))
        self.InsertField(FieldReal(self,"Temperature Term Coefficient","0",(" *B* in Equation","",),0,"","",""))
        self.InsertField(FieldReal(self,"Velocity Term Coefficient","0",(" *C* in Equation","",),0,"","",""))
        self.InsertField(FieldReal(self,"Velocity Squared Term Coefficient","0",(" *D* in Equation","",),0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Indoor Temperature","-100",("this is the indoor temperature below which ventilation is shutoff","Units: C",),-100,100,"",""))
        self.InsertField(FieldObjectlist(self,"Minimum Indoor Temperature Schedule Name","",("This schedule contains the indoor temperature versus time below which","ventilation is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Maximum Indoor Temperature","100",("this is the indoor temperature above which ventilation is shutoff","Units: C",),-100,100,"",""))
        self.InsertField(FieldObjectlist(self,"Maximum Indoor Temperature Schedule Name","",("This schedule contains the indoor temperature versus time above which","ventilation is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Delta Temperature","-100",("this is the temperature differential between indoor and outdoor below which ventilation is shutoff","Units: deltaC",),-100,"","",""))
        self.InsertField(FieldObjectlist(self,"Delta Temperature Schedule Name","",("This schedule contains the temperature differential between indoor and outdoor","versus time below which ventilation is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Minimum Outdoor Temperature","-100",("this is the outdoor temperature below which ventilation is shutoff","Units: C",),-100,100,"",""))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Temperature Schedule Name","",("This schedule contains the outdoor temperature versus time below which","ventilation is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Maximum Outdoor Temperature","100",("this is the outdoor temperature above which ventilation is shutoff","Units: C",),-100,100,"",""))
        self.InsertField(FieldObjectlist(self,"Maximum Outdoor Temperature Schedule Name","",("This schedule contains the outdoor temperature versus time above which","ventilation is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Maximum Wind Speed","40",("this is the outdoor wind speed above which ventilation is shutoff","Units: m/s",),0,40,"",""))


        self.insertMemo((" Ventilation is specified as a design level which is modified by a schedule fraction, temperature difference and wind speed:"," Ventilation=Vdesign * Fschedule * (A + B*|(Tzone-Todb)| + C*WindSpd + D * WindSpd**2)",))
        self.addReference("VentilationNames")
        self.setRequired(False)
        self.setMinfields(15)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneVentilation")





class ZoneMixing(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Flow Rate Calculation Method","Flow/Zone",("The entered calculation method is used to create the maximum amount of ventilation","for this set of attributes","Choices: Flow/Zone => Design Flow Rate -- simply enter Design Flow Rate","Flow/Area => Flow Rate per Zone Floor Area - Value * Floor Area (zone) = Design Flow Rate","Flow/Person => Flow Rate per Person - Value * #people = Design Flow Rate","AirChanges/Hour => Air Changes per Hour - Value * Floor Volume (zone) adjusted for m3/s = Design Volume Flow Rate"," *Vdesign* in Equation is the result.","",),["Flow/Zone","Flow/Area","Flow/Person","AirChanges/Hour",]))
        self.InsertField(FieldReal(self,"Design Flow Rate",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow Rate per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow Rate per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Air Changes per Hour",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Source Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Delta Temperature","0",("This field contains the constant temperature differential between source and","receiving zones below which mixing is shutoff.","Units: deltaC",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Delta Temperature Schedule Name","",("This schedule contains the temperature differential between source and receiving","zones versus time below which mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Minimum Zone Temperature Schedule Name","",("This schedule contains the zone dry-bulb temperature versus time below which","mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Maximum Zone Temperature Schedule Name","",("This schedule contains the zone dry-bulb temperature versus time above which","mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Minimum Source Zone Temperature Schedule Name","",("This schedule contains the source zone dry-bulb temperature versus time below","which mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Maximum Source Zone Temperature Schedule Name","",("This schedule contains the source zone dry-bulb temperature versus time above","which mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Temperature Schedule Name","",("This schedule contains the outdoor temperature versus time below which","mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Maximum Outdoor Temperature Schedule Name","",("This schedule contains the outdoor temperature versus time above which","mixing is shutoff.","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneMixing")





class ZoneCrossMixing(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Design Flow Rate Calculation Method","Flow/Zone",("The entered calculation method is used to create the maximum amount of ventilation","for this set of attributes","Choices: Flow/Zone => Design Flow Rate -- simply enter Design Flow Rate","Flow/Area => Flow Rate per Zone Floor Area - Value * Floor Area (zone) = Design Flow Rate","Flow/Person => Flow Rate per Person - Value * #people = Design Flow Rate","AirChanges/Hour => Air Changes per Hour - Value * Floor Volume (zone) adjusted for m3/s = Design Volume Flow Rate"," *Vdesign* in Equation is the result.","",),["Flow/Zone","Flow/Person","Flow/Area","AirChanges/Hour",]))
        self.InsertField(FieldReal(self,"Design Flow Rate",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow Rate per Zone Floor Area",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Flow Rate per Person",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Air Changes per Hour",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Source Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Delta Temperature","0",("This field contains the constant temperature differential between source and","receiving zones below which cross mixing is shutoff. This value must be greater","than or equal to zero.","Units: deltaC",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Delta Temperature Schedule Name","",("This schedule contains the temperature differential between source and receiving","zones versus time below which cross mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Minimum Zone Temperature Schedule Name","",("This schedule contains the indoor temperature versus time below which","cross mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Maximum Zone Temperature Schedule Name","",("This schedule contains the indoor temperature versus time above which","cross mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Minimum Source Zone Temperature Schedule Name","",("This schedule contains the source zone dry-bulb temperature versus time below","which cross mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Maximum Source Zone Temperature Schedule Name","",("This schedule contains the source zone dry-bulb temperature versus time above","which cross mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Temperature Schedule Name","",("This schedule contains the outdoor temperature versus time below which","cross mixing is shutoff.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Maximum Outdoor Temperature Schedule Name","",("This schedule contains the outdoor temperature versus time above which","cross mixing is shutoff.","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneCrossMixing")





class ZoneEarthtube(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Design Flow Rate",0,(" *Edesign* in Equation","Units: m3/s",),0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Zone Temperature when Cooling",0,("this is the indoor temperature below which the earth tube is shut off","Units: C",),-100,100,"",""))
        self.InsertField(FieldReal(self,"Maximum Zone Temperature when Heating",0,("this is the indoor temperature above which the earth tube is shut off","Units: C",),-100,100,"",""))
        self.InsertField(FieldReal(self,"Delta Temperature",0,("This is the temperature difference between indoor and outdoor below which the earth tube is shut off","Units: deltaC",),0,"","",""))
        self.InsertField(FieldChoice(self,"Earthtube Type","Natural","",["Natural","Intake","Exhaust",]))
        self.InsertField(FieldReal(self,"Fan Pressure Rise","0",("pressure rise across the fan","Units: Pa",),0,"","",""))
        self.InsertField(FieldReal(self,"Fan Total Efficiency","1","","","",0,""))
        self.InsertField(FieldReal(self,"Pipe Radius","1","","","",0,""))
        self.InsertField(FieldReal(self,"Pipe Thickness","0.2","","","",0,""))
        self.InsertField(FieldReal(self,"Pipe Length","15","","","",0,""))
        self.InsertField(FieldReal(self,"Pipe Thermal Conductivity","200","","","",0,""))
        self.InsertField(FieldReal(self,"Pipe Depth Under Ground Surface","3","","","",0,""))
        self.InsertField(FieldChoice(self,"Soil Condition","HeavyAndDamp","",["HeavyAndSaturated","HeavyAndDamp","HeavyAndDry","LightAndDry",]))
        self.InsertField(FieldReal(self,"Average Soil Surface Temperature","0","","","","",""))
        self.InsertField(FieldReal(self,"Amplitude of Soil Surface Temperature","0","",0,"","",""))
        self.InsertField(FieldReal(self,"Phase Constant of Soil Surface Temperature","0","",0,"","",""))
        self.InsertField(FieldReal(self,"Constant Term Flow Coefficient","1",(" *A* in Equation","",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature Term Flow Coefficient","0",(" *B* in Equation","",),"","","",""))
        self.InsertField(FieldReal(self,"Velocity Term Flow Coefficient","0",(" *C* in Equation","",),"","","",""))
        self.InsertField(FieldReal(self,"Velocity Squared Term Flow Coefficient","0",(" *D* in Equation","",),"","","",""))


        self.insertMemo((" Earth Tube is specified as a design level which is modified by a Schedule fraction, temperature difference and wind speed:"," Earthtube=Edesign * Fschedule * (A + B*|(Tzone-Todb)| + C*WindSpd + D * WindSpd**2)",))
        self.setRequired(False)
        self.setMinfields(22)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneEarthtube")





class ZoneCoolTower_Shower(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Water Supply Storage Tank Name","",("In case of stand alone tank or underground water, leave this input blank","",),"WaterStorageTankNames"))
        self.InsertField(FieldChoice(self,"Flow Control Type","WindDrivenFlow",("Water flow schedule should be selected when the water flow rate is known.","Wind-driven flow should be selected when the water flow rate is unknown.","",),["WaterFlowSchedule","WindDrivenFlow",]))
        self.InsertField(FieldObjectlist(self,"Pump Flow Rate Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Maximum Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Effective Tower Height",0,("This field is from either the spray or the wet pad to the top of the outlet.","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Airflow Outlet Area",0,("User have to specify effective area when outlet area is relatively bigger than the cross sectional area","of cooltower. If the number of outlet is more than one, assume the air passes through only one.","Units: m2",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Air Flow Rate",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Indoor Temperature",0,("This field is to specify the indoor temperature below which cooltower is shutoff.","Units: C",),-100,100,"",""))
        self.InsertField(FieldReal(self,"Fraction of Water Loss",0,"",0,1,"",""))
        self.InsertField(FieldReal(self,"Fraction of Flow Schedule",0,"",0,1,"",""))
        self.InsertField(FieldReal(self,"Rated Power Consumption",0,"","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone Airflow") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneCoolTower:Shower")





class ZoneThermalChimney(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of zone that is the thermal chimney","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Width of the Absorber Wall",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Cross Sectional Area of Air Channel Outlet",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Discharge Coefficient","0.8","",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Zone 1 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 1",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 1","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 1",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 2 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 2",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 2","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 2",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 3 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 3",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 3","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 3",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 4 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 4",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 4","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 4",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 5 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 5",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 5","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 5",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 6 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 6",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 6","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 6",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 7 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 7",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 7","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 7",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 8 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 8",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 8","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 8",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 9 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 9",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 9","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 9",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 10 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 10",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 10","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 10",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 11 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 11",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 11","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 11",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 12 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 12",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 12","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 12",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 13 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from the Top of the Thermal Chimney to Inlet 13",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 13","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 13",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 14 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 14",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 14","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 14",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 15 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 15",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 15","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 15",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 16 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 16",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 16","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 16",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 17 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 17",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 17","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 17",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 18 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 18",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 18","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 18",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 19 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 19",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 19","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 19",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Zone 20 Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Distance from Top of Thermal Chimney to Inlet 20",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Relative Ratios of Air Flow Rates Passing through Zone 20","1.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Cross Sectional Areas of Air Channel Inlet 20",0,"",0,"","",""))


        self.setRequired(False)
        self.setMinfields(10)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneThermalChimney")





class AirflowNetwork_SimulationControl(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldChoice(self,"AirflowNetwork Control","NoMultizoneOrDistribution",("NoMultizoneOrDistribution: Only perform Simple calculations (objects ZoneInfiltration,","ZoneVentilation, ZoneMixing and ZoneCrossMixing);","MultizoneWithoutDistribution: Use AirflowNetwork objects to simulate multizone","Airflows driven by wind during simulation time,","and objects of ZoneInfiltration, ZoneVentilation, ZoneMixing and ZoneCrossMixing are ignored;","MultizoneWithDistributionOnlyDuringFanOperation: Perform distribution system","calculations during system fan on time","and Simple calculations during system Fan off time;","MultizoneWithDistribution: Perform distribution system calculations during system","fan on time and multizone Airflow driven by wind during system fan off time.","",),["MultizoneWithDistribution","MultizoneWithoutDistribution","MultizoneWithDistributionOnlyDuringFanOperation","NoMultizoneOrDistribution",]))
        self.InsertField(FieldChoice(self,"Wind Pressure Coefficient Type","SurfaceAverageCalculation",("Input: User must enter AirflowNetwork:MultiZone:WindPressureCoefficientArray,","AirflowNetwork:MultiZone:ExternalNode, and","AirflowNetwork:MultiZone:WindPressureCoefficientValues objects.","SurfaceAverageCalculation: used only for rectangular buildings.","If SurfaceAverageCalculation is selected,","AirflowNetwork:MultiZone:WindPressureCoefficientArray, AirflowNetwork:MultiZone:ExternalNode,","and AirflowNetwork:MultiZone:WindPressureCoefficientValues objects are not used.","",),["Input","SurfaceAverageCalculation",]))
        self.InsertField(FieldObjectlist(self,"AirflowNetwork Wind Pressure Coefficient Array Name","",("Used only if Wind Pressure Coefficient Type = Input, otherwise this field may be left blank.","",),"WPCSetNames"))
        self.InsertField(FieldChoice(self,"Height Selection for Local Wind Speed Calculation","OpeningHeight",("If ExternalNode is selected, the height given in the","AirflowNetwork:MultiZone:ExternalNode object will be used.","If OpeningHeight is selected, the surface opening height (centroid) will be used to","calculate local wind speed","This field is ignored when the choice of the Wind Pressure Coefficient Type field is","SurfaceAverageCalculation.","",),["ExternalNode","OpeningHeight",]))
        self.InsertField(FieldChoice(self,"Building Type","LowRise",("Used only if Wind Pressure Coefficient Type = SurfaceAverageCalculation,","otherwise this field may be left blank.","",),["LowRise","HighRise",]))
        self.InsertField(FieldInt(self,"Maximum Number of Iterations","500",("Determines the maximum number of iterations used to converge on a solution. If this limit","is exceeded, the program terminates.","Units: dimensionless",),"",30000,10,""))
        self.InsertField(FieldChoice(self,"Initialization Type","ZeroNodePressures","",["LinearInitializationMethod","ZeroNodePressures",]))
        self.InsertField(FieldReal(self,"Relative Airflow Convergence Tolerance","1.E-4",("This tolerance is defined as the absolute value of the sum of the mass Flow Rates","divided by the sum of the absolute value of the mass Flow Rates. The mass Flow Rates","described here refer to the mass Flow Rates at all Nodes in the AirflowNetwork model.","The solution converges when both this tolerance and the tolerance in the next field","(Absolute Airflow Convergence Tolerance) are satisfied.","Units: dimensionless",),"","",0,""))
        self.InsertField(FieldReal(self,"Absolute Airflow Convergence Tolerance","1.E-6",("This tolerance is defined as the absolute value of the sum of the mass flow rates. The mass","flow rates described here refer to the mass flow rates at all nodes in the AirflowNetwork","model. The solution converges when both this tolerance and the tolerance in the previous","field (Relative Airflow Convergence Tolerance) are satisfied.","Units: kg/s",),"","",0,""))
        self.InsertField(FieldReal(self,"Convergence Acceleration Limit","-0.5",("Used only for AirflowNetwork:SimulationControl","Units: dimensionless",),-1,1,"",""))
        self.InsertField(FieldReal(self,"Azimuth Angle of Long Axis of Building","0.0",("Degrees clockwise from true North.","Used only if Wind Pressure Coefficient Type = SurfaceAverageCalculation.","Units: deg",),0.0,180.0,"",""))
        self.InsertField(FieldReal(self,"Ratio of Building Width Along Short Axis to Width Along Long Axis","1.0",("Used only if Wind Pressure Coefficient Type = SurfaceAverageCalculation.","",),"",1.0,0.0,""))


        self.insertMemo(("This object defines the global parameters used in an Airflow Network simulation.",))
        self.setRequired(False)
        self.setMinfields(13)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:SimulationControl")





class AirflowNetwork_MultiZone_Zone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Enter the zone name where ventilation control is required.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Ventilation Control Mode","NoVent",("When Ventilation Control Mode = Temperature or Enthalpy, the following","fields are used to modulate the Ventilation Open Factor for all","window and door openings in the zone according to the zone's","indoor-outdoor temperature or enthalpy difference.","Constant: controlled by field Venting Schedule Name.","NoVent: control will not open window or door during simulation (Ventilation Open Factor = 0).","",),["Temperature","Enthalpy","Constant","NoVent",]))
        self.InsertField(FieldObjectlist(self,"Ventilation Control Zone Temperature Setpoint Schedule Name","",("Used only if Ventilation Control Mode = Temperature or Enthalpy.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Minimum Venting Open Factor","0.0",("Used only if Ventilation Control Mode = Temperature or Enthalpy.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor","0.0",("Applicable only if Ventilation Control Mode = Temperature.","This value must be less than the corresponding upper value (next field).","Units: deltaC",),0.0,"","",100.0))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor","100.0",("Applicable only if Ventilation Control Mode = Temperature.","This value must be greater than the corresponding lower value (previous field).","Units: deltaC",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor","0.0",("Applicable only if Ventilation Control Mode = Enthalpy.","This value must be less than the corresponding upper value (next field).","Units: deltaJ/kg",),0.0,"","",300000.0))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor","300000.0",("Applicable only if Ventilation Control Mode = Enthalpy.","This value must be greater than the corresponding lower value (previous field).","Units: deltaJ/kg",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Venting Availability Schedule Name","",("Non-zero Schedule value means venting is allowed if other venting control conditions are","satisfied. A zero (or negative) Schedule value means venting is not allowed under any","The Schedule values should be greater than or equal to 0 and less than or equal to 1.","circumstances. If this Schedule is not specified then venting is allowed if","other venting control conditions are satisfied.","Not used if Ventilation Control Mode = NoVent.","",),"ScheduleNames"))


        self.insertMemo(("This object is used to simultaneously control a thermal zone's window and door openings,","both exterior and interior.",))
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:Zone")





class AirflowNetwork_MultiZone_Surface(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Surface Name","",("Enter the name of a heat transfer surface.","",),"SurfAndSubSurfNames"))
        self.InsertField(FieldObjectlist(self,"Leakage Component Name","",("Enter the name of an Airflow Network leakage component. A leakage component is","one of the following AirflowNetwork:Multizone objects: AirflowNetwork:MultiZone:Component:DetailedOpening,","AirflowNetwork:MultiZone:Component:SimpleOpening, AirflowNetwork:MultiZone:Surface:Crack,","AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea, or","AirflowNetwork:MultiZone:Component:ZoneExhaustFan.","When the zone exhaust fan name is entered, any surface control fields below A3 are","ignored when the zone exhaust fan turns on.","",),"SurfaceAirflowLeakageNames"))
        self.InsertField(FieldObjectlist(self,"External Node Name","",("Used if Wind Pressure Coefficient Type = Input in the AirflowNetwork:SimulationControl object,","otherwise this field may be left blank.","",),"ExternalNodeNames"))
        self.InsertField(FieldReal(self,"Window/Door Opening Factor, or Crack Factor","1.0",("This field specifies a multiplier for a crack, window, or door.","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Ventilation Control Mode","ZoneLevel",("When Ventilation Control Mode = Temperature or Enthalpy, the following","fields are used to modulate the Ventilation Open Factor for a","window or door opening according to the parent zone's","indoor-outdoor temperature or enthalpy difference.","When Ventilation Control Mode = AdjacentTemperature or AdjacentEnthalpy, the following","fields are used to modulate the Ventilation Open Factor for an interior","window or door opening according to temperature or enthalpy difference","between the parent zone and the adjacent zone.","Constant: controlled by field Venting Schedule Name.","NoVent: control will not open window or door during simulation (Ventilation Open Factor = 0).","ZoneLevel: control will be controlled by AirflowNetwork:MultiZone:Zone","Mode.","",),["Temperature","Enthalpy","Constant","NoVent","ZoneLevel","AdjacentTemperature","AdjacentEnthalpy",]))
        self.InsertField(FieldObjectlist(self,"Ventilation Control Zone Temperature Setpoint Schedule Name","",("Used only if Ventilation Control Mode = Temperature or Enthalpy.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Minimum Venting Open Factor","0.0",("Used only if Ventilation Control Mode = Temperature or Enthalpy.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Temperature Difference Lower Limit For Maximum Venting Open Factor","0.0",("Applicable only if Ventilation Control Mode = Temperature","Units: deltaC",),0.0,"","",100))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Temperature Difference Upper Limit for Minimun Venting Open Factor","100.0",("Applicable only if Ventilation Control Mode = Temperature.","This value must be greater than the corresponding lower value (previous field).","Units: deltaC",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Enthalpy Difference Lower Limit For Maximum Venting Open Factor","0.0",("Applicable only if Ventilation Control Mode = Enthalpy.","This value must be less than the corresponding upper value (next field).","Units: deltaJ/kg",),0.0,"","",300000.0))
        self.InsertField(FieldReal(self,"Indoor and Outdoor Enthalpy Difference Upper Limit for Minimun Venting Open Factor","300000.0",("Applicable only if Ventilation Control Mode = Enthalpy.","This value must be greater than the corresponding lower value (previous field).","Units: deltaJ/kg",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Venting Availability Schedule Name","",("Non-zero schedule value means venting is allowed if other venting control conditions are","satisfied. A zero (or negative) schedule value means venting is not allowed under any","circumstances. The schedule values should be greater than or equal to 0 and less than or","equal to 1. If this schedule is not specified then venting is allowed if","other venting control conditions are satisfied.","Not used if Ventilation Control Mode = NoVent or ZoneLevel.","",),"ScheduleNames"))


        self.insertMemo(("This object specifies the properties of a surface linkage through which air flows.","Airflow Report: Node 1 as an inside face zone;","Node 2 as an outside face zone or external node.",))
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:Surface")





class AirflowNetwork_MultiZone_ReferenceCrackConditions(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Reference Temperature","20",("Enter the reference temperature under which the surface crack data were obtained.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Reference Barometric Pressure","101325",("Enter the reference barometric pressure under which the surface crack data were obtained.","Units: Pa",),31000,120000,"",""))
        self.InsertField(FieldReal(self,"Reference Humidity Ratio","0",("Enter the reference humidity ratio under which the surface crack data were obtained.","Units: kg/kg",),"","","",""))


        self.insertMemo(("This object specifies the conditions under which the air mass flow coefficient was measured.",))
        self.addReference("ReferenceCrackConditions")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:ReferenceCrackConditions")





class AirflowNetwork_MultiZone_Surface_Crack(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Air Mass Flow Coefficient at Reference Conditions",0,("Enter the air mass flow coefficient at the conditions defined","in the Reference Crack Conditions object.","Defined at 1 Pa pressure difference across this crack.","Units: kg/s",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Mass Flow Exponent","0.65",("Enter the air mass flow exponent for the surface crack.","Units: dimensionless",),0.5,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Reference Crack Conditions","",("Select a AirflowNetwork:MultiZone:ReferenceCrackConditions name associated with","the air mass flow coefficient entered above.","",),"ReferenceCrackConditions"))


        self.insertMemo(("This object specifies the properties of airflow through a crack.",))
        self.addReference("SurfaceAirflowLeakageNames")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:Surface:Crack")





class AirflowNetwork_MultiZone_Surface_EffectiveLeakageArea(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Effective Leakage Area",0,("Enter the effective leakage area.","Units: m2",),"","",0,""))
        self.InsertField(FieldReal(self,"Discharge Coefficient","1.0",("Enter the coefficient used in the air mass flow equation.","Units: dimensionless",),"","",0,""))
        self.InsertField(FieldReal(self,"Reference Pressure Difference","4.0",("Enter the pressure difference used to define the air mass flow coefficient and exponent.","Units: Pa",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Mass Flow Exponent",".65",("Enter the exponent used in the air mass flow equation.","Units: dimensionless",),0.5,1.0,"",""))


        self.insertMemo(("This object is used to define surface air leakage.",))
        self.addReference("SurfaceAirflowLeakageNames")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea")





class AirflowNetwork_MultiZone_Component_DetailedOpening(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Air Mass Flow Coefficient When Opening is Closed",0,("Defined at 1 Pa per meter of crack length. Enter the coefficient used in the following","equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent.","Used only when opening (window or door) is closed.","Units: kg/s-m",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Mass Flow Exponent When Opening is Closed","0.65",("Enter the exponent used in the following equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent.","Used only when opening (window or door) is closed.","Units: dimensionless",),0.5,1.0,"",""))
        self.InsertField(FieldChoice(self,"Type of Rectanguler Large Vertical Opening (LVO)","NonPivoted",("Select the type of vertical opening: Non-pivoted opening or Horizontally pivoted opening.","",),["NonPivoted","HorizontallyPivoted",]))
        self.InsertField(FieldReal(self,"Extra Crack Length or Height of Pivoting Axis","0",("Extra crack length is used for LVO Non-pivoted type with multiple openable parts.","Height of pivoting axis is used for LVO Horizontally pivoted type.","Specifies window or door characteristics that depend on the LVO type.","For Non-pivoted Type (rectangular windows and doors), this field is the extra crack length","in meters due to multiple openable parts, if present.  Extra here means in addition","to the length of the cracks on the top, bottom and sides of the window/door.","For Horizontally pivoted Type, this field gives the height of the","pivoting axis measured from the bottom of the glazed part of the window (m).","Units: m",),0,"","",""))
        self.InsertField(FieldInt(self,"Number of Sets of Opening Factor Data",0,("Enter the number of the following sets of data for opening factor,","discharge coefficient, width factor, height factor, and start height factor.","",),2,4,"",""))
        self.InsertField(FieldReal(self,"Opening Factor 1","0",("This value must be specified as 0.","Units: dimensionless",),0,0,"",""))
        self.InsertField(FieldReal(self,"Discharge Coefficient for Opening Factor 1","0.001",("The Discharge Coefficient indicates the fractional effectiveness","for air flow through a window or door at that Opening Factor.","Units: dimensionless",),"",1,0,""))
        self.InsertField(FieldReal(self,"Width Factor for Opening Factor 1","0",("The Width Factor is the opening width divided by the window or door width.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Height Factor for Opening Factor 1","0",("The Height Factor is the opening height divided by the window or door height.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Start Height Factor for Opening Factor 1","0",("The Start Height Factor is the Start Height divided by the window or door height.","Start Height is the distance between the bottom of the window or door and the","bottom of the window or door opening. The sum of the Height Factor and the Start Height","Factor must be less than 1.0 in order to have the opening within the window or door","dimensions.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Opening Factor 2",0,("If Number of Sets of Opening Factor Data = 2, this value must be 1.0.","If Number of Sets of Opening Factor Data = 3, this value must be less than 1.0.","If Number of Sets of Opening Factor Data = 4, this value must be less than the","value entered for Opening factor 3 and greater than the value entered","for Opening factor 1.","Units: dimensionless",),"",1,0,""))
        self.InsertField(FieldReal(self,"Discharge Coefficient for Opening Factor 2","1",("The Discharge Coefficient indicates the fractional effectiveness","for air flow through a window or door at that Opening Factor.","Units: dimensionless",),"",1,0,""))
        self.InsertField(FieldReal(self,"Width Factor for Opening Factor 2","1",("The Width Factor is the opening width divided by the window or door width.","Units: dimensionless",),"",1,0,""))
        self.InsertField(FieldReal(self,"Height Factor for Opening Factor 2","1",("The Height Factor is the opening height divided by the window or door height.","Units: dimensionless",),"",1,0,""))
        self.InsertField(FieldReal(self,"Start Height Factor for Opening Factor 2","0",("The Start Height Factor is the Start Height divided by the window or door height.","Start Height is the distance between the bottom of the window or door and the","bottom of the window or door opening. The sum of the Height Factor and the Start Height","Factor must be less than 1.0 in order to have the opening within the window or door","dimensions.","Units: dimensionless",),0,"","",1))
        self.InsertField(FieldReal(self,"Opening Factor 3",0,("If Number of Sets of Opening Factor Data = 3, this value must be 1.0.","If Number of Sets of Opening Factor Data = 4, this value must be less than 1.0,","and greater than value entered for Opening factor 2.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Discharge Coefficient for Opening Factor 3","0",("The Discharge Coefficient indicates the fractional effectiveness","for air flow through a window or door at that Opening Factor.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Width Factor for Opening Factor 3","0",("The Width Factor is the opening width divided by the window or door width.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Height Factor for Opening Factor 3","0",("The Height Factor is the opening height divided by the window or door height.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Start Height Factor for Opening Factor 3","0",("The Start Height Factor is the Start Height divided by the window or door height.","Start Height is the distance between the bottom of the window or door and the","bottom of the window or door opening. The sum of the Height Factor and the Start Height","Factor must be less than 1.0 in order to have the opening within the window or door","dimensions.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Opening Factor 4",0,("If Number of Sets of Opening Factor Data = 4, this value must be 1.0","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Discharge Coefficient for Opening Factor 4","0",("The Discharge Coefficient indicates the fractional effectiveness","for air flow through a window or door at that Opening Factor.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Width Factor for Opening Factor 4","0",("The Width Factor is the opening width divided by the window or door width.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Height Factor for Opening Factor 4","0",("The Height Factor is the opening height divided by the window or door height.","Units: dimensionless",),0,1,"",""))
        self.InsertField(FieldReal(self,"Start Height Factor for Opening Factor 4","0",("The Start Height Factor is the Start Height divided by the window or door height.","Start Height is the distance between the bottom of the window or door and the","bottom of the window or door opening. The sum of the Height Factor and the Start Height","Factor must be less than 1.0 in order to have the opening within the window or door","dimensions.","Units: dimensionless",),0,1,"",""))


        self.insertMemo(("This object specifies the properties of airflow through windows and doors (window, door and","glass door heat transfer subsurfaces) when they are closed or open.",))
        self.addReference("SurfaceAirflowLeakageNames")
        self.setRequired(False)
        self.setMinfields(16)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:Component:DetailedOpening")





class AirflowNetwork_MultiZone_Component_SimpleOpening(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Air Mass Flow Coefficient When Opening is Closed",0,("Defined at 1 Pa pressure difference. Enter the coefficient used in the following equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent.","Used only when opening (window or door) is closed.","Units: kg/s-m",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Mass Flow Exponent When Opening is Closed",".65",("Enter the exponent used in the following equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent.","Used only when opening (window or door) is closed.","Units: dimensionless",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Density Difference for Two-Way Flow",0,("Enter the minimum density difference above which two-way flow may occur due to stack effect.","Units: kg/m3",),"","",0,""))
        self.InsertField(FieldReal(self,"Discharge Coefficient",0,("The Discharge Coefficient indicates the fractional effectiveness","for air flow through a window or door at that Opening Factor.","Units: dimensionless",),"","",0,""))


        self.insertMemo(("This object specifies the properties of air flow through windows and doors (window, door and","glass door heat transfer subsurfaces) when they are closed or open.",))
        self.addReference("SurfaceAirflowLeakageNames")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:Component:SimpleOpening")





class AirflowNetwork_MultiZone_Component_ZoneExhaustFan(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter the name of the zone exhaust fan.","",)))
        self.InsertField(FieldReal(self,"Air Mass Flow Coefficient When the Zone Exhaust Fan is Off at Reference Conditions",0,("Enter the air mass flow coefficient at the conditions defined","in the Reference Crack Conditions object.","Defined at 1 Pa pressure difference. Enter the coefficient used in the following","equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent.","Used only when the fan is off.","Units: kg/s",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Mass Flow Exponent When the Zone Exhaust Fan is Off","0.65",("Enter the exponent used in the following equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent.","Used only when the fan is off.","Units: dimensionless",),0.5,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Reference Crack Conditions","",("Select a AirflowNetwork:MultiZone:ReferenceCrackConditions name associated with","the air mass flow coefficient entered above.","",),"ReferenceCrackConditions"))


        self.insertMemo(("This object specifies the additional properties for a zone exhaust fan","to perform multizone airflow calculations.",))
        self.addReference("ZoneEquipmentLists")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:Component:ZoneExhaustFan")





class AirflowNetwork_MultiZone_ExternalNode(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","This node name will be referenced by a particular building facade.","",)))
        self.InsertField(FieldReal(self,"External Node Height","0.0",("Designates the reference height used to calculate relative pressure.","Units: m",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Wind Pressure Coefficient Values Object Name","",("Enter the name of the AirflowNetwork:MultiZone:WindPressureCoefficientValues object.","",),"WPCValueNames"))


        self.insertMemo(("This object defines outdoor environmental conditions outside of the building.",))
        self.addReference("ExternalNodeNames")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:ExternalNode")





class AirflowNetwork_MultiZone_WindPressureCoefficientArray(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for the object.","",)))
        self.InsertField(FieldReal(self,"Wind Direction 1",0,("Enter the wind direction corresponding to the 1st WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 2",0,("Enter the wind direction corresponding to the 2nd WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 3",0,("Enter the wind direction corresponding to the 3rd WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 4",0,("Enter the wind direction corresponding to the 4th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 5",0,("Enter the wind direction corresponding to the 5th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 6",0,("Enter the wind direction corresponding to the 6th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 7",0,("Enter the wind direction corresponding to the 7th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 8",0,("Enter the wind direction corresponding to the 8th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 9",0,("Enter the wind direction corresponding to the 9th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 10",0,("Enter the wind direction corresponding to the 10th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 11",0,("Enter the wind direction corresponding to the 11th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 12",0,("Enter the wind direction corresponding to the 12th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 13",0,("Enter the wind direction corresponding to the 13th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 14",0,("Enter the wind direction corresponding to the 14th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 15",0,("Enter the wind direction corresponding to the 15th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 16",0,("Enter the wind direction corresponding to the 16th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 17",0,("Enter the wind direction corresponding to the 17th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 18",0,("Enter the wind direction corresponding to the 18th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 19",0,("Enter the wind direction corresponding to the 19th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 20",0,("Enter the wind direction corresponding to the 20th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 21",0,("Enter the wind direction corresponding to the 21st WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 22",0,("Enter the wind direction corresponding to the 22nd WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 23",0,("Enter the wind direction corresponding to the 23rd WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 24",0,("Enter the wind direction corresponding to the 24th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 25",0,("Enter the wind direction corresponding to the 25th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 26",0,("Enter the wind direction corresponding to the 26th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 27",0,("Enter the wind direction corresponding to the 27th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 28",0,("Enter the wind direction corresponding to the 28th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 29",0,("Enter the wind direction corresponding to the 29th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 30",0,("Enter the wind direction corresponding to the 30th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 31",0,("Enter the wind direction corresponding to the 31st WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 32",0,("Enter the wind direction corresponding to the 32nd WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 33",0,("Enter the wind direction corresponding to the 33rd WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 34",0,("Enter the wind direction corresponding to the 34th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 35",0,("Enter the wind direction corresponding to the 35th WPC Array value.","Units: deg",),0.0,360.0,"",""))
        self.InsertField(FieldReal(self,"Wind Direction 36",0,("Enter the wind direction corresponding to the 36th WPC Array value.","Units: deg",),0.0,360.0,"",""))


        self.insertMemo(("Used only if Wind Pressure Coefficient (WPC) Type = Input in the AirflowNetwork:SimulationControl","object. Number of WPC Values in the corresponding AirflowNetwork:MultiZone:WindPressureCoefficientValues","object must be the same as the number of wind directions specified for","this AirflowNetwork:MultiZone:WindPressureCoefficientArray object.",))
        self.addReference("WPCSetNames")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:WindPressureCoefficientArray")





class AirflowNetwork_MultiZone_WindPressureCoefficientValues(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Enter a unique name for this object.","",),""))
        self.InsertField(FieldObjectlist(self,"AirflowNetwork:MultiZone:WindPressureCoefficientArray Name","",("Enter the name of the AirflowNetwork:Multizone:WindPressureCoefficientArray object.","",),"WPCSetNames"))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 1",0,("Enter the WPC Value corresponding to the 1st wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 2",0,("Enter the WPC Value corresponding to the 2nd wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 3",0,("Enter the WPC Value corresponding to the 3rd wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 4",0,("Enter the WPC Value corresponding to the 4th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 5",0,("Enter the WPC Value corresponding to the 5th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 6",0,("Enter the WPC Value corresponding to the 6th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 7",0,("Enter the WPC Value corresponding to the 7th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 8",0,("Enter the WPC Value corresponding to the 8th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 9",0,("Enter the WPC Value corresponding to the 9th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 10",0,("Enter the WPC Value corresponding to the 10th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 11",0,("Enter the WPC Value corresponding to the 11th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 12",0,("Enter the WPC Value corresponding to the 12th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 13",0,("Enter the WPC Value corresponding to the 13th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 14",0,("Enter the WPC Value corresponding to the 14th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 15",0,("Enter the WPC Value corresponding to the 15th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 16",0,("Enter the WPC Value corresponding to the 16th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 17",0,("Enter the WPC Value corresponding to the 17th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 18",0,("Enter the WPC Value corresponding to the 18th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 19",0,("Enter the WPC Value corresponding to the 19th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 20",0,("Enter the WPC Value corresponding to the 20th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 21",0,("Enter the WPC Value corresponding to the 21st wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 22",0,("Enter the WPC Value corresponding to the 22nd wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 23",0,("Enter the WPC Value corresponding to the 23rd wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 24",0,("Enter the WPC Value corresponding to the 24th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 25",0,("Enter the WPC Value corresponding to the 25th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 26",0,("Enter the WPC Value corresponding to the 26th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 27",0,("Enter the WPC Value corresponding to the 27th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 28",0,("Enter the WPC Value corresponding to the 28th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 29",0,("Enter the WPC Value corresponding to the 29th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 30",0,("Enter the WPC Value corresponding to the 30th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 31",0,("Enter the WPC Value corresponding to the 31st wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 32",0,("Enter the WPC Value corresponding to the 32nd wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 33",0,("Enter the WPC Value corresponding to the 33rd wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 34",0,("Enter the WPC Value corresponding to the 34th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 35",0,("Enter the WPC Value corresponding to the 35th wind direction.","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Wind Pressure Coefficient Value 36",0,("Enter the WPC Value corresponding to the 36th wind direction.","Units: dimensionless",),"","","",""))


        self.insertMemo(("Used only if Wind Pressure Coefficient (WPC) Type = INPUT in the AirflowNetwork:SimulationControl","object. The number of WPC numeric inputs must correspond to the number of wind direction","inputs in the AirflowNetwork:Multizone:WindPressureCoefficientArray object.",))
        self.addReference("WPCValueNames")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:MultiZone:WindPressureCoefficientValues")





class AirflowNetwork_Distribution_Node(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldText(self,"Component Name or Node Name","",("Designates node names defined in another object. The node name may occur in air branches.","Enter a node name to represent a node already defined in an air loop.","Leave this field blank if the Node or Object Type field below is entered as","AirLoopHVAC:ZoneMixer, AirLoopHVAC:ZoneSplitter, AirLoopHVAC:OutdoorAirSystem, or Other.","",)))
        self.InsertField(FieldChoice(self,"Component Object Type or Node Type","Other",("Designates Node type for the Node or Component Name defined in the field above.","AirLoopHVAC:ZoneMixer -- Represents a AirLoopHVAC:ZoneMixer object.","AirLoopHVAC:ZoneSplitter -- Represents a AirLoopHVAC:ZoneSplitter object.","AirLoopHVAC:OutdoorAirSystem -- Represents an AirLoopHVAC:OutdoorAirSystem object.","OAMixerOutdoorAirStreamNode -- Represents an external node used in the OutdoorAir:Mixer","OutdoorAir:NodeList -- Represents an external node when a heat exchanger is used before","the OutdoorAir:Mixer","OutdoorAir:Node -- Represents an external node when a heat exchanger is used before","the OutdoorAir:Mixer","Other -- none of the above, the Node name already defined in the previous field is part","of an air loop.","",),["AirLoopHVAC:ZoneMixer","AirLoopHVAC:ZoneSplitter","AirLoopHVAC:OutdoorAirSystem","OAMixerOutdoorAirStreamNode","OutdoorAir:NodeList","OutdoorAir:Node","Other",]))
        self.InsertField(FieldReal(self,"Node Height","0.0",("Enter the reference height used to calculate the relative pressure.","Units: m",),"","","",""))


        self.insertMemo(("This object represents an air distribution node in the AirflowNetwork model.",))
        self.addReference("AirflowNetwork NodeNames")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Node")





class AirflowNetwork_Distribution_Component_Leak(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Air Mass Flow Coefficient",0,("Defined at 1 Pa pressure difference across this component.","Enter the coefficient used in the following equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent","Units: kg/s",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Mass Flow Exponent","0.65",("Enter the exponent used in the following equation:","Mass Flow Rate = Air Mass Flow Coefficient * (dP)^Air Mass Flow Exponent","Units: dimensionless",),0.5,1.0,"",""))


        self.insertMemo(("This object defines the characteristics of a supply or return air leak.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:Leak")





class AirflowNetwork_Distribution_Component_LeakageRatio(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Effective Leakage Ratio",0,("Defined as a ratio of leak flow rate to the maximum flow rate.","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Maximum Flow Rate",0,("Enter the maximum air flow rate in this air loop.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Reference Pressure Difference",0,("Enter the pressure corresponding to the Effective leakage ratio entered above.","Units: Pa",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Air Mass Flow Exponent","0.65",("Enter the exponent used in the air mass flow equation.","Units: dimensionless",),0.5,1.0,"",""))


        self.insertMemo(("This object is used to define supply and return air leaks with respect to the fan's maximum","air flow rate.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:LeakageRatio")





class AirflowNetwork_Distribution_Component_Duct(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Duct Length",0,("Enter the length of the duct.","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Hydraulic Diameter",0,("Enter the hydraulic diameter of the duct.","Hydraulic diameter is defined as 4 multiplied by cross section area divided by perimeter","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Cross Section Area",0,("Enter the cross section area of the duct.","Units: m2",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Surface Roughness","0.0009",("Enter the inside surface roughness of the duct.","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Coefficient for Local Dynamic Loss Due to Fitting","0.0",("Enter the coefficient used to calculate dynamic losses of fittings (e.g. elbows).","Units: dimensionless",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Overall Heat Transmittance Coefficient (U-Factor) from Air to Air","0.772",("including film coefficients at both surfaces","Enter the overall U-value for this duct.","Default value of 0.772 is equivalent to 1.06 m2-K/W (R6) duct insulation with","film coefficients for outside and inside equal to 5 and 25 W/m2-K, respectively.","Units: W/m2-K",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Overall Moisture Transmittance Coefficient from Air to Air","0.001",("Enter the overall moisture transmittance coefficient","including moisture film coefficients at both surfaces.","Units: kg/m2",),"","",0.0,""))


        self.insertMemo(("This object defines the relationship between pressure and air flow through the duct.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:Duct")





class AirflowNetwork_Distribution_Component_ConstantVolumeFan(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Fan Name","",("Enter the name of the constant volume fan in the primary air loop.","",)))
        self.InsertField(FieldChoice(self,"Supply Fan Object Type","Fan:ConstantVolume","",["Fan:OnOff","Fan:ConstantVolume",]))


        self.insertMemo(("This object defines the name of the constant volume supply Air Fan used in an Air loop.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:ConstantVolumeFan")





class AirflowNetwork_Distribution_Component_Coil(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Coil Name","",("Enter the name of a cooling or heating coil in the primary Air loop.","",)))
        self.InsertField(FieldChoice(self,"Coil Object Type","",("Select the type of coil corresponding to the name entered in the field above.","",),["Coil:Cooling:DX:SingleSpeed","Coil:Heating:Gas","Coil:Heating:Electric","Coil:Heating:DX:SingleSpeed","Coil:Cooling:Water","Coil:Heating:Water","Coil:Cooling:Water:DetailedGeometry","Coil:Cooling:DX:TwoStageWithHumidityControlMode","Coil:Cooling:DX:MultiSpeed","Coil:Heating:DX:MultiSpeed","Coil:Heating:Desuperheater",]))
        self.InsertField(FieldReal(self,"Air Path Length",0,("Enter the air path length (depth) for the coil.","Units: m",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Path Hydraulic Diameter",0,("Enter the hydraulic diameter of this coil. The hydraulic diameter is","defined as 4 multiplied by the cross section area divided by perimeter.","Units: m",),"","",0,""))


        self.insertMemo(("This object defines the name of a coil used in an air loop.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:Coil")





class AirflowNetwork_Distribution_Component_HeatExchanger(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"HeatExchanger Name","",("Enter the name of an air-to-air heat exchanger in the primary Air loop.","",)))
        self.InsertField(FieldChoice(self,"HeatExchanger Object Type","",("Select the type of heat exchanger corresponding to the name entered in the field above.","",),["HeatExchanger:AirToAir:FlatPlate","HeatExchanger:AirToAir:SensibleAndLatent","HeatExchanger:Desiccant:BalancedFlow",]))
        self.InsertField(FieldReal(self,"Air Path Length",0,("Enter the air path length (depth) for the heat exchanger.","Units: m",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Path Hydraulic Diameter",0,("Enter the hydraulic diameter of this heat exchanger. The hydraulic diameter is","defined as 4 multiplied by the cross section area divided by perimeter.","Units: m",),"","",0,""))


        self.insertMemo(("This object defines the name of an air-to-air heat exchanger used in an air loop.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:HeatExchanger")





class AirflowNetwork_Distribution_Component_TerminalUnit(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Terminal Unit Name","",("Enter the name of a terminal unit in the AirLoopHVAC.","",)))
        self.InsertField(FieldChoice(self,"Terminal Unit Object Type","",("Select the type of terminal unit corresponding to the name entered in the field above.","",),["AirTerminal:SingleDuct:ConstantVolume:Reheat",]))
        self.InsertField(FieldReal(self,"Air Path Length",0,("Enter the air path length (depth) for the terminal unit.","Units: m",),"","",0,""))
        self.InsertField(FieldReal(self,"Air Path Hydraulic Diameter",0,("Enter the hydraulic diameter of this terminal unit. The hydraulic diameter is","defined as 4 multiplied by the cross section area divided by perimeter.","Units: m",),"","",0,""))


        self.insertMemo(("This object defines the name of a terminal unit in an air loop.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:TerminalUnit")





class AirflowNetwork_Distribution_Component_ConstantPressureDrop(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldReal(self,"Pressure Difference Across the Component",0,("Enter the pressure drop across this component.","Units: Pa",),"","",0.0,""))


        self.insertMemo(("This object defines the characteristics of a constant pressure drop component (e.g. filter).","Each node connected to this object can not be a node of mixer, splitter, a node of air primary","loop, or zone equipment loop. It is recommended to connect to a duct component at both ends.",))
        self.addReference("AirflowNetworkComponentNames")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Natural Ventilation and Duct Leakage") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Component:ConstantPressureDrop")





class AirflowNetwork_Distribution_Linkage(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this object.","",)))
        self.InsertField(FieldText(self,"Node 1 Name","",("Enter the name of zone or AirflowNetwork Node.","",)))
        self.InsertField(FieldText(self,"Node 2 Name","",("Enter the name of zone or AirflowNetwork Node.","",)))
        self.InsertField(FieldObjectlist(self,"Component Name","",("Enter the name of an AirflowNetwork component. A component is one of the","following AirflowNetwork:Distribution:Component objects: Leak, LeakageRatio,","Duct, ConstantVolumeFan, Coil, TerminalUnit, ConstantPressureDrop, or HeatExchanger.","",),"AirflowNetworkComponentNames"))
        self.InsertField(FieldObjectlist(self,"Thermal Zone Name","",("Only used if component = AirflowNetwork:Distribution:Component:Duct","The zone name is where AirflowNetwork:Distribution:Component:Duct is exposed. Leave this field blank if the duct","conduction loss is ignored.","",),"ZoneNames"))


        self.insertMemo(("This object defines the connection between two nodes and a component.",))
        self.addReference("AirflowNetwork LinkageNames")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Exterior Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirflowNetwork:Distribution:Linkage")





class Exterior_Lights(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in schedule should be fraction applied to capacity of the exterior lights equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Design Level",0,"",0,"","",""))
        self.InsertField(FieldChoice(self,"Control Option","",("Astronomical Clock option overrides schedule to turn lights off when sun is up","",),["ScheduleNameOnly","AstronomicalClock",]))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.insertMemo(("only used for Meter type reporting, does not affect building loads",))
        self.addReference("ExteriorLightsNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Exterior Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Exterior:Lights")





class Exterior_FuelEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Use Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Diesel","Gasoline","Coal","Steam","DistrictHeating","DistrictCooling",]))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in schedule should be fraction applied to capacity of the exterior fuel equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Design Level",0,"",0,"","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.insertMemo(("only used for Meter type reporting, does not affect building loads",))
        self.addReference("ExteriorFuelEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Exterior Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Exterior:FuelEquipment")





class Exterior_WaterEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Use Type","Water","",["Water",]))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("units in Schedule should be fraction applied to capacity of the exterior water equipment, generally (0.0 - 1.0)","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Design Level",0,"",0,"","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.insertMemo(("only used for Meter type reporting, does not affect building loads",))
        self.addReference("ExteriorWaterEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("Exterior:WaterEquipment")





class HVACTemplate_Thermostat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("This name is referenced by HVACTemplate:Zone:* objects","",)))
        self.InsertField(FieldObjectlist(self,"Heating Setpoint Schedule Name","",(" Leave blank if constant setpoint specified below, must enter schedule or constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Constant Heating Setpoint",0,(" Ignored if schedule specified above, must enter schedule or constant setpoint","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Cooling Setpoint Schedule Name","",(" Leave blank if constant setpoint specified below, must enter schedule or constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Constant Cooling Setpoint",0,(" Ignored if schedule specified above, must enter schedule or constant setpoint","Units: C",),"","","",""))


        self.insertMemo(("Zone thermostat control.  Referenced schedules must be","defined elsewhere in the idf.  Thermostat control type is","dual setpoint with deadband.  It is not necessary to create","a thermostat object for every zone, only for each unique","set of setpoint schedules.  For example, an office building","may have two thermostat objects, one for *Office* and one","for *Storage*.",))
        self.addReference("CompactHVACThermostats")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Thermostat")





class HVACTemplate_Zone_IdealLoadsAirSystem(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone name must match a building zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Template Thermostat Name","",("Enter the name of a HVACTemplate:Thermostat object.","If blank, then it is assumed that standard thermostat objects","have been defined for this zone.","",),"CompactHVACThermostats"))


        self.insertMemo(("Zone with ideal air system that meets heating or cooling loads",))
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Zone:IdealLoadsAirSystem")





class HVACTemplate_Zone_FanCoil(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone name must match a building zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Template Thermostat Name","",("Enter the name of a HVACTemplate:Thermostat object.","If blank, then it is assumed that standard thermostat objects","have been defined for this zone.","",),"CompactHVACThermostats"))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Maximum Flow Rate","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Supply Air Sizing Factor",0,("Applicable when Zone Supply Air Maximum Flow Rate is autosized","If blank, value from Sizing:Parameters will be used.","",),"","","",""))
        self.InsertField(FieldChoice(self,"Outdoor Air Method","Flow/Person","",["Flow/Person","Flow/Zone","Flow/Area","Sum","Maximum",]))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Person","0.00944",("Default 0.00944 is 20 cfm per person","This input is used if the field Outdoor Air Method is","Flow/Person, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone Floor Area","0.0",("This input is used if the field Outdoor Air Method is","Flow/Area, Sum, or Maximum","Units: m3/s-m2",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone","0.0",("This input is used if the field Outdoor Air Method is","Flow/Zone, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldObjectlist(self,"System Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Supply Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Delta Pressure","75","",0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Motor in Air Stream Fraction","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Type"," ChilledWater","",[" ChilledWater"," ChilledWaterDetailedFlatModel",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Cooling Coil Design Setpoint","14.0",(" Used for sizing.","Units: C",),"","","",""))
        self.InsertField(FieldChoice(self,"Heating Coil Type","HotWater","",[" HotWater",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Heating Coil Design Setpoint","50.0",("  Used for sizing.","Units: C",),"","","",""))


        self.insertMemo(("4 pipe fan coil unit with optional outdoor air.",))
        self.setRequired(False)
        self.setMinfields(19)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Zone:FanCoil")





class HVACTemplate_Zone_PTAC(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone name must match a building zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Template Thermostat Name","",("Enter the name of a HVACTemplate:Thermostat object.","If blank, then it is assumed that standard thermostat objects","have been defined for this zone.","",),"CompactHVACThermostats"))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Supply Air Flow Rate","Autosize",("Supply air flow rate during heating operation","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Heating Supply Air Flow Rate","Autosize",("Supply air flow rate during heating operation","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"No Load Supply Air Flow Rate",0,("Supply air flow rate when no cooling or heating is needed","Only used when heat pump fan operating mode is ContinuousFanWithCyclingCompressor. This air flow rate","is used when no heating or cooling is required and the DX coil compressor is off.","If this field is left blank or zero, the supply air flow rate from the previous on cycle","(either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldReal(self,"Supply Air Sizing Factor",0,("Applicable when supply air flow rates are autosized","If blank, value from Sizing:Parameters will be used.","",),"","","",""))
        self.InsertField(FieldChoice(self,"Outdoor Air Method","Flow/Person","",["Flow/Person","Flow/Zone","Flow/Area","Sum","Maximum",]))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Person","0.00944",("Default 0.00944 is 20 cfm per person","This input is used if the field Outdoor Air Method is","Flow/Person, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone Floor Area","0.0",("This input is used if the field Outdoor Air Method is","Flow/Area, Sum, or Maximum","Units: m3/s-m2",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone","0.0",("This input is used if the field Outdoor Air Method is","Flow/Zone, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldObjectlist(self,"System Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Supply Fan Operating Mode Schedule Name","Cycling",("Refers to a schedule to specify unitary supply fan operating mode.","Schedule Name values of 0 indicate cycling fan (auto)","Schedule values of 1 indicate continuous fan (on)","Keywords *Cycling* or *Continuous* may also be used here.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Supply Fan Placement","DrawThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldReal(self,"Supply Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Delta Pressure","75","",0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Cooling Coil Type","SingleSpeedDX","",[" SingleSpeedDX",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Rated Capacity","Autosize",("Gross capacity excluding effect of supply air fan heat","Rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Rated Sensible Heat Ratio","Autosize",("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","Sensible and total capacities do not include effect of supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Cooling Coil Rated COP","3.0",("Gross cooling capacity divided by power in","does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Heating Coil Type","Electric","",[" Electric"," HotWater"," Gas",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Heating Coil Capacity","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Efficiency","0.8",("Applies only if Heating Coil Type is Gas","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Parasitic Electric Load","0.0",("Applies only if Heating Coil Type is Gas","Units: W",),0.0,"","",""))


        self.insertMemo(("Pacakged Terminal Air Conditioner",))
        self.setRequired(False)
        self.setMinfields(26)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Zone:PTAC")





class HVACTemplate_Zone_PTHP(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone name must match a building zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Template Thermostat Name","",("Enter the name of a HVACTemplate:Thermostat object.","If blank, then it is assumed that standard thermostat objects","have been defined for this zone.","",),"CompactHVACThermostats"))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Supply Air Flow Rate","Autosize",("Supply air flow rate during heating operation","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Heating Supply Air Flow Rate","Autosize",("Supply air flow rate during heating operation","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"No Load Supply Air Flow Rate",0,("Supply air flow rate when no cooling or heating is needed","Only used when heat pump fan operating mode is ContinuousFanWithCyclingCompressor. This air flow rate","is used when no heating or cooling is required and the DX coil compressor is off.","If this field is left blank or zero, the supply air flow rate from the previous on cycle","(either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldReal(self,"Supply Air Sizing Factor",0,("Applicable when supply air flow rates are autosized","If blank, value from Sizing:Parameters will be used.","",),"","","",""))
        self.InsertField(FieldChoice(self,"Outdoor Air Method","Flow/Person","",["Flow/Person","Flow/Zone","Flow/Area","Sum","Maximum",]))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Person","0.00944",("Default 0.00944 is 20 cfm per person","This input is used if the field Outdoor Air Method is","Flow/Person, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone Floor Area","0.0",("This input is used if the field Outdoor Air Method is","Flow/Area, Sum, or Maximum","Units: m3/s-m2",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone","0.0",("This input is used if the field Outdoor Air Method is","Flow/Zone, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldObjectlist(self,"System Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Supply Fan Operating Mode Schedule Name","Cycling",("Refers to a schedule to specify unitary supply fan operating mode.","Schedule values of 0 indicate cycling fan (auto)","Schedule values of 1 indicate continuous fan (on)","Keywords *Cycling* or *Continuous* may also be used here.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Supply Fan Placement","DrawThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldReal(self,"Supply Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Delta Pressure","75","",0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Cooling Coil Type","SingleSpeedDX","",[" SingleSpeedDX",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Rated Capacity","Autosize",("Gross capacity excluding effect of supply air fan heat","Rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Rated Sensible Heat Ratio","Autosize",("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","Sensible and total capacities do not include effect of supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Cooling Coil Rated COP","3.0",("Gross cooling capacity divided by power in","does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Heat Pump Heating Coil Type","SingleSpeedDXHeatPump","",[" SingleSpeedDXHeatPump",]))
        self.InsertField(FieldObjectlist(self,"Heat Pump Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Heat Pump Heating Coil Rated Capacity","Autosize",("Capacity excluding supply air fan heat","Rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","Rating point heating coil entering air dry-bulb 21.11 C, coil entering wet-bulb 15.55 C","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Heat Pump Heating Coil Rated COP","2.75",("Heat Pump Heating Coil Rate Capacity divided by power in","Does not include supply air fan heat or supply air fan electrical energy","Rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","Rating point heating coil entering air dry-bulb 21.11 C, coil entering wet-bulb 15.55 C","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Heat Pump Heating Minimum Outdoor Dry-Bulb Temperature","-8.0","",-20.0,"","",""))
        self.InsertField(FieldReal(self,"Heat Pump Defrost Maximum Outdoor Dry-Bulb Temperature","5.0","",0.0,7.22,"",""))
        self.InsertField(FieldChoice(self,"Heat Pump Defrost Strategy","ReverseCycle","",["ReverseCycle","Resistive",]))
        self.InsertField(FieldChoice(self,"Heat Pump Defrost Control","Timed","",["Timed","OnDemand",]))
        self.InsertField(FieldReal(self,"Heat Pump Defrost Time Period Fraction","0.058333",("Fraction of time in defrost mode","only applicable if Timed defrost control is specified","",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Supplemental Heating Coil Type","Electric","",[" Electric"," Gas",]))
        self.InsertField(FieldObjectlist(self,"Supplemental Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Supplemental Heating Coil Capacity","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Supplemental Heating Coil Maximum Outdoor Dry-Bulb Temperature","21.0",("Supplemental heater will not operate when outdoor temperature exceeds this value.","Units: C",),"",21.0,"",""))
        self.InsertField(FieldReal(self,"Supplemental Gas Heating Coil Efficiency","0.8",("Applies only if Supplemental Heating Coil Type is Gas","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Supplemental Gas Heating Coil Parasitic Electric Load","0.0",("Applies only if Supplemental Heating Coil Type is Gas","Units: W",),0.0,"","",""))


        self.insertMemo(("Packaged Terminal Heat Pump",))
        self.setRequired(False)
        self.setMinfields(36)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Zone:PTHP")





class HVACTemplate_Zone_Unitary(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone name must match a building zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Template Unitary System Name","",("Enter the name of a HVACTemplate:System:Unitary object serving this zone","",),"CompactHVACSystemUnitary"))
        self.InsertField(FieldObjectlist(self,"Template Thermostat Name","",("Enter the name of a HVACTemplate:Thermostat object.","If blank, then it is assumed that standard thermostat objects","have been defined for this zone.","",),"CompactHVACThermostats"))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Maximum Flow Rate","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Supply Air Sizing Factor",0,("Applicable when Supply Air Maximum Flow Rate is autosized","If blank, value from SizingParameters will be used.","",),"","","",""))
        self.InsertField(FieldChoice(self,"Outdoor Air Method","Flow/Person","",["Flow/Person","Flow/Zone","Flow/Area","Sum","Maximum",]))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Person","0.00944",("Default 0.00944 is 20 cfm per person","This input is used if the field Outdoor Air Method is","Flow/Person, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone Floor Area","0.0",("This input is used if the field Outdoor Air Method is","Flow/Area, Sum, or Maximum","Units: m3/s-m2",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone","0.0",("This input is used if the field Outdoor Air Method is","Flow/Zone, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Supply Plenum Name","",("Plenum zone name.  Supply plenum runs through only this zone.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Return Plenum Name","",("Plenum zone name.  Return plenum runs through only this zone.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Baseboard Heating Type","None","",[" HotWater"," Electric"," None",]))
        self.InsertField(FieldObjectlist(self,"Baseboard Heating Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Baseboard Heating Capacity","Autosize","","","","",""))


        self.insertMemo(("Zone terminal unit, constant volume, no controls.",))
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Zone:Unitary")





class HVACTemplate_Zone_VAV(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone name must match a building zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Template VAV System Name","",("Name of a HVACTemplate:System:VAV object serving this zone","",),"CompactHVACSystemVAV"))
        self.InsertField(FieldObjectlist(self,"Template Thermostat Name","",("Enter the name of a HVACTemplate:Thermostat object.","If blank, then it is assumed that standard thermostat objects","have been defined for this zone.","",),"CompactHVACThermostats"))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Maximum Flow Rate","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Supply Air Sizing Factor",0,("Applicable when Supply Air Maximum Flow Rate is autosized","If blank, value from Sizing:Paramters will be used.","",),"","","",""))
        self.InsertField(FieldReal(self,"Supply Air Minimum Flow Fraction","0.2","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Outdoor Air Method","Flow/Person","",["Flow/Person","Flow/Zone","Flow/Area","Sum","Maximum",]))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Person","0.00944",("Default 0.00944 is 20 cfm per person","This input is used if the field Outdoor Air Method is","Flow/Person, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone Floor Area","0.0",("This input is used if the field Outdoor Air Method is","Flow/Area, Sum, or Maximum","Units: m3/s-m2",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone","0.0",("This input is used if the field Outdoor Air Method is","Flow/Zone, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldChoice(self,"Reheat Coil Type","None","",[" HotWater"," Electric"," None",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Heating Damper Action","Reverse","",["Normal","Reverse",]))
        self.InsertField(FieldObjectlist(self,"Supply Plenum Name","",("Plenum zone name.  Supply plenum runs through only this zone.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Return Plenum Name","",("Plenum zone name.  Return plenum runs through only this zone.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Baseboard Heating Type","None","",[" HotWater"," Electric"," None",]))
        self.InsertField(FieldObjectlist(self,"Baseboard Heating Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Baseboard Heating Capacity","Autosize","","","","",""))


        self.insertMemo(("Zone terminal unit, variable volume, reheat optional.","Referenced schedules must be defined elsewhere in the idf.",))
        self.setRequired(False)
        self.setMinfields(18)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Zone:VAV")





class HVACTemplate_Zone_VAV_FanPowered(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Zone Name must match a building zone name","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Template VAV System Name","",("Enter then name of a HVACTemplate:System:VAV object serving this zone.","",),"CompactHVACSystemVAV"))
        self.InsertField(FieldObjectlist(self,"Template Thermostat Name","",("Enter the name of a HVACTemplate:Thermostat object.","If blank, then it is assumed that standard thermostat objects","have been defined for this zone.","",),"CompactHVACThermostats"))
        self.InsertField(FieldRealAutocalculate(self,"Primary Supply Air Maximum Flow Rate","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Supply Air Sizing Factor",0,("Applicable when Primary Supply Air Maximum Flow Rate is autosized","If blank, value from Sizing:Parameters will be used.","",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Primary Supply Air Minimum Flow Fraction","Autosize","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Secondary Supply Air Maximum Flow Rate","Autosize","","","","",""))
        self.InsertField(FieldChoice(self,"Flow Type","Parallel","",[" Parallel"," Series",]))
        self.InsertField(FieldRealAutocalculate(self,"Parallel Fan On Flow Fraction","Autosize",("The fraction of the primary air flow at which fan turns on","Applicable only to Parallel Flow Type","",),"","","",""))
        self.InsertField(FieldChoice(self,"Outdoor Air Method","Flow/Person","",["Flow/Person","Flow/Zone","Flow/Area","Sum","Maximum",]))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Person","0.00944",("Default 0.00944 is 20 cfm per person","This input is used if the field Outdoor Air Method is","Flow/Person, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone Floor Area","0.0",("This input is used if the field Outdoor Air Method is","Flow/area, Sum, or Maximum","Units: m3/s-m2",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow Rate per Zone","0.0",("This input is used if the field Outdoor Air Method is","Flow/Zone, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldChoice(self,"Reheat Coil Type","Electric","",[" HotWater"," Electric",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Fan Delta Pressure","1000","",0,"","",""))
        self.InsertField(FieldReal(self,"Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldObjectlist(self,"Supply Plenum Name","",("Plenum zone name.  Supply plenum runs through only this zone.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Return Plenum Name","",("Plenum zone name.  Return plenum runs through only this zone.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Baseboard Heating Type","None","",[" HotWater"," Electric"," None",]))
        self.InsertField(FieldObjectlist(self,"Baseboard Heating Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Baseboard Heating Capacity","Autosize","","","","",""))


        self.insertMemo(("Zone terminal unit, fan powered variable volume, reheat optional.","Referenced schedules must be defined elsewhere in the idf.",))
        self.setRequired(False)
        self.setMinfields(23)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Zone:VAV:FanPowered")





class HVACTemplate_System_Unitary(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"System Availability Schedule Name","",("If blank, always on; Unitary System always on.  Schedule is used in availability manager","and fan scheduling.","Also see *Night Cycle Control* field.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Control Zone or Thermostat Location Name","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Supply Fan Maximum Flow Rate","Autosize","","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Supply Fan Operating Mode Schedule Name","Cycling",("Refers to a schedule to specify unitary supply fan operating mode.","Schedule values of 0 indicate cycling fan (auto)","Schedule values of 1 indicate continuous fan (on)","Keywords *Cycling* or *Continuous* may also be used here.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Supply Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Delta Pressure","600","",0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Motor in Air Stream Fraction","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Type","SingleSpeedDX","",[" SingleSpeedDX"," None",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Capacity","Autosize",("Gross cooling capacity (net capacity plus fan heat)","Units: W",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Rated Sensible Heat Ratio","Autosize",("Gross SHR","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Cooling Coil Rated COP","3.0",("Gross cooling capacity divided by power in","",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Heating Coil Type","","",[" Electric"," Gas",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Heating Coil Capacity","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Efficiency","0.8","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Parasitic Electric Load","0.0","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Air Schedule Name","",("Schedule values multiply the minimum outdoor air flow rate","If blank, always one","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Economizer Type","NoEconomizer","",["FixedDryBulb","FixedEnthalpy","DifferentialDryBulb","DifferentialEnthalpy","FixedDewPointAndDryBulb","ElectronicEnthalpy","DifferentialDryBulbAndEnthalpy","NoEconomizer",]))
        self.InsertField(FieldChoice(self,"Economizer Lockout","NoLockout","",["NoLockout","LockoutWithHeating","LockoutWithCompressor",]))
        self.InsertField(FieldReal(self,"Economizer Upper Temperature Limit",0,("Outdoor temperature above which economizer is disabled and","heat recovery is enabled (if available).","Blank means no limit.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Lower Temperature Limit",0,("Outdoor temperature below which economizer is disabled and","heat recovery is enabled (if available).","Blank means no limit.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Upper Enthalpy Limit",0,("Outdoor enthalpy above which economizer is disabled and","heat recovery is enabled (if available).","Blank means no limit.","Units: J/kg",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Supply Plenum Name","",("Plenum zone name.  Supply plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Return Plenum Name","",("Plenum zone name.  Return plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Supply Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldChoice(self,"Night Cycle Control","StayOff","",["StayOff","CycleOnAny","CycleOnControlZone",]))
        self.InsertField(FieldObjectlist(self,"Night Cycle Control Zone Name","",("Applicable only if Night Cycle Control is Cycle On Control Zone.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Heat Recovery Type","None",("If heat recovery is specified, then a value must be entered in","the Minimum Outdoor Air Flow Rate field, because heat recovery","equipment is not yet autosizable.","",),["None","Sensible","Enthalpy",]))
        self.InsertField(FieldReal(self,"Sensible Heat Recovery Effectiveness","0.70","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Heat Recovery Effectiveness","0.65",("Applicable only if Heat Recovery Type is Enthalpy.","",),0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Dehumidification Control Type","None",("None = meet sensible cooling load only","CoolReheatHeatingCoil = cool beyond the dry-bulb setpoint","as required to meet the humidity setpoint, reheat with main heating coil.","CoolReheatDesuperheater = cool beyond the dry-bulb setpoint","as required to meet the humidity setpoint, reheat with desuperheater coil.","",),["None","CoolReheatHeatingCoil","CoolReheatDesuperheater",]))
        self.InsertField(FieldObjectlist(self,"Dehumidification Control Zone Name","",("Zone name where humidistat is located","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Dehumidification Setpoint","60.0",("Zone relative humidity setpoint in percent (0 to 100)","Units: percent",),0.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Humidifier Type","None","",["None","ElectricSteam",]))
        self.InsertField(FieldObjectlist(self,"Humidifier Availability Schedule Name","",("If blank, always available","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Humidifier Rated Capacity","0.000001",("Moisture output rate at full rated power input.","The humidifier does not currently autosize, so the default is very large","to allow for adequate capacity.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Humidifier Rated Electric Power","2690.0",("Electric power input at rated capacity moisture output.","The humidifier does not currently autosize, so the default power input is","consistent with the default capacity input (2690 W per 0.000001 m3/s output)","Power consumption is proportional to moisture output with no part-load penalty.","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Humidifier Control Zone Name","",("Zone name where humidistat is located","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Humidifier Setpoint","30.0",("Zone relative humidity setpoint in percent (0 to 100)","Units: percent",),0.0,100.0,"",""))


        self.insertMemo(("Unitary furnace with air conditioner","Referenced schedules must be defined elsewhere in the idf.",))
        self.addReference("CompactHVACSystemUnitary")
        self.setRequired(False)
        self.setMinfields(44)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:System:Unitary")





class HVACTemplate_System_UnitaryHeatPump_AirToAir(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"System Availability Schedule Name","",("If blank, always on; Unitary System always on.  Schedule is used in availability manager","and fan scheduling.","Also see *Night Cycle Control* field.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Control Zone or Thermostat Location Name","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Supply Air Flow Rate","Autosize",("Supply air flow rate during heating operation","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Heating Supply Air Flow Rate","Autosize",("Supply air flow rate during heating operation","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"No Load Supply Air Flow Rate","Autosize",("Supply air flow rate when no cooling or heating is needed","Only used when heat pump fan operating mode is Continuous. This air flow rate","is used when no heating or cooling is required and the DX coil compressor is off.","If this field is left blank or zero, the supply air flow rate from the previous on cycle","(either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldObjectlist(self,"Supply Fan Operating Mode Schedule Name","Cycling",("Refers to a schedule to specify unitary supply fan operating mode.","Schedule values of 0 indicate cycling fan (auto)","Schedule values of 1 indicate continuous fan (on)","Keywords *Cycling* or *Continuous* may also be used here.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Supply Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldReal(self,"Supply Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Delta Pressure","600","",0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Motor in Air Stream Fraction","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Type","SingleSpeedDX","",[" SingleSpeedDX",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Capacity","Autosize",("Gross capacity excluding effect of supply air fan heat","Rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Rated Sensible Heat Ratio","Autosize",("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","Sensible and total capacities do not include effect of supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Cooling Coil Rated COP","3.0",("Gross cooling capacity divided by power in","",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Heat Pump Heating Coil Type","SingleSpeedDXHeatPump","",[" SingleSpeedDXHeatPump",]))
        self.InsertField(FieldObjectlist(self,"Heat Pump Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Heat Pump Heating Coil Rated Capacity","Autosize",("Capacity excluding supply air fan heat","Rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","Rating point heating coil entering air dry-bulb 21.11 C, coil entering wet-bulb 15.55 C","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Heat Pump Heating Coil Rated COP","2.75",("Heat Pump Heating Coil Rate Capacity divided by power in","Does not include supply air fan heat or supply air fan electrical energy","Rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","Rating point heating coil entering air dry-bulb 21.11 C, coil entering wet-bulb 15.55 C","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Heat Pump Heating Minimum Outdoor Dry-Bulb Temperature","-8.0","",-20.0,"","",""))
        self.InsertField(FieldReal(self,"Heat Pump Defrost Maximum Outdoor Dry-Bulb Temperature","5.0","",0.0,7.22,"",""))
        self.InsertField(FieldChoice(self,"Heat Pump Defrost Strategy","ReverseCycle","",["ReverseCycle","Resistive",]))
        self.InsertField(FieldChoice(self,"Heat Pump Defrost Control","Timed","",["Timed","OnDemand",]))
        self.InsertField(FieldReal(self,"Heat Pump Defrost Time Period Fraction","0.058333",("Fraction of time in defrost mode","only applicable if Timed defrost control is specified","",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Supplemental Heating Coil Type","Electric","",[" Electric"," Gas",]))
        self.InsertField(FieldObjectlist(self,"Supplemental Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Supplemental Heating Coil Capacity","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Supplemental Heating Coil Maximum Outdoor Dry-Bulb Temperature","21.0",("Supplemental heater will not operate when outdoor temperature exceeds this value.","Units: C",),"",21.0,"",""))
        self.InsertField(FieldReal(self,"Supplemental Gas Heating Coil Efficiency","0.8",("Applies only if Supplemental Heating Coil Type is Gas","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Supplemental Gas Heating Coil Parasitic Electric Load","0.0",("Applies only if Supplemental Heating Coil Type is Gas","Units: W",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Air Schedule Name","",("Schedule values multiply the minimum outdoor air flow rate","If blank, always one","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Economizer Type","NoEconomizer","",["FixedDryBulb","FixedEnthalpy","DifferentialDryBulb","DifferentialEnthalpy","FixedDewPointAndDryBulb","ElectronicEnthalpy","DifferentialDryBulbAndEnthalpy","NoEconomizer",]))
        self.InsertField(FieldChoice(self,"Economizer Lockout","NoLockout","",["NoLockout","LockoutWithHeating","LockoutWithCompressor",]))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Dry-Bulb Temperature",0,("Enter the maximum outdoor dry-bulb temperature limit for FixedDryBulb","economizer control type. No input or blank input means this limit is","not operative. Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Enthalpy",0,("Enter the maximum outdoor enthalpy limit for FixedEnthalpy economizer control type.","No input or blank input means this limit is not operative","Limit is applied regardless of economizer control type.","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Dewpoint Temperature",0,("Enter the maximum outdoor dewpoint temperature limit for FixedDewPointAndDryBulb","economizer control type. No input or blank input means this limit is not operative.","Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Minimum Limit Dry-Bulb Temperature",0,("Enter the minimum outdoor dry-bulb temperature limit for economizer control.","No input or blank input means this limit is not operative","Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Supply Plenum Name","",("Plenum zone name.  Supply plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Return Plenum Name","",("Plenum zone name.  Return plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Night Cycle Control","StayOff","",["StayOff","CycleOnAny","CycleOnControlZone",]))
        self.InsertField(FieldObjectlist(self,"Night Cycle Control Zone Name","",("Applicable only if Night Cycle Control is Cycle On Control Zone.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Heat Recovery Type","None",("If heat recovery is specified, then a value must be entered in","the Minimum Outdoor Air Flow Rate field, because heat recovery","equipment is not yet autosizable.","",),["None","Sensible","Enthalpy",]))
        self.InsertField(FieldReal(self,"Sensible Heat Recovery Effectiveness","0.70","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Heat Recovery Effectiveness","0.65",("Applicable only if Heat Recovery Type is Enthalpy.","",),0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Humidifier Type","None","",["None","ElectricSteam",]))
        self.InsertField(FieldObjectlist(self,"Humidifier Availability Schedule Name","",("If blank, always available","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Humidifier Rated Capacity","0.000001",("Moisture output rate at full rated power input.","The humidifier does not currently autosize, so the default is very large","to allow for adequate capacity.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Humidifier Rated Electric Power","2690.0",("Electric power input at rated capacity moisture output.","The humidifier does not currently autosize, so the default power input is","consistent with the default capacity input (2690 W per 0.000001 m3/s output)","Power consumption is proportional to moisture output with no part-load penalty.","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Humidifier Control Zone Name","",("Zone name where humidistat is located","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Humidifier Setpoint","30.0",("Zone relative humidity setpoint in percent (0 to 100)","Units: percent",),0.0,100.0,"",""))


        self.insertMemo(("Unitary furnace with electric air-to-air heat pump","Referenced schedules must be defined elsewhere in the idf.",))
        self.addReference("CompactHVACSystemUnitary")
        self.setRequired(False)
        self.setMinfields(54)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:System:UnitaryHeatPump:AirToAir")





class HVACTemplate_System_VAV(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"System Availability Schedule Name","",("If blank, always on; VAV System always on.  Schedule is used in availability manager","and fan scheduling.","Also see *Night Cycle Control* field.","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Supply Fan Maximum Flow Rate","Autosize","","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Fan Minimum Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Delta Pressure","1000","",0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Motor in Air Stream Fraction","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Type"," ChilledWater","",[" ChilledWater"," ChilledWaterDetailedFlatModel",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Setpoint Schedule Name","",(" Leave blank if constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Cooling Coil Design Setpoint","12.8",(" Used for sizing and as constant setpoint if no Cooling Coil Setpoint Schedule Name is specified.","Units: C",),"","","",""))
        self.InsertField(FieldChoice(self,"Heating Coil Type","None","",[" HotWater"," Electric"," Gas"," None",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating Coil Setpoint Schedule Name","",(" Leave blank if constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Heating Coil Design Setpoint","10.0",("  Used for sizing and as constant setpoint if no Heating Coil Setpoint Schedule Name is specified.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Efficiency","0.8","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Parasitic Electric Load","0.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Preheat Coil Type","None","",[" Electric"," Gas"," None",]))
        self.InsertField(FieldObjectlist(self,"Preheat Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Preheat Coil Setpoint Schedule Name","",(" Leave blank if constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Preheat Coil Design Setpoint","7.2",("  Used for sizing and as constant setpoint if no Preheat Coil Setpoint Schedule Name specified.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Gas Preheat Coil Efficiency","0.8","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Gas Preheat Coil Parasitic Electric Load","0.0","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Minimum Outdoor Air Control Type","ProportionalMinimum","",["FixedMinimum","ProportionalMinimum",]))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Air Schedule Name","",("Schedule values multiply the Minimum Outdoor Air Flow Rate","If blank, always one","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Economizer Type","NoEconomizer","",["FixedDryBulb","FixedEnthalpy","DifferentialDryBulb","DifferentialEnthalpy","FixedDewPointAndDryBulb","ElectronicEnthalpy","DifferentialDryBulbAndEnthalpy","NoEconomizer",]))
        self.InsertField(FieldChoice(self,"Economizer Lockout","NoLockout","",["NoLockout",]))
        self.InsertField(FieldReal(self,"Economizer Upper Temperature Limit",0,("Outdoor temperature above which economizer is disabled and","heat recovery is enabled (if available).","Blank means no limit.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Lower Temperature Limit",0,("Outdoor temperature below which economizer is disabled and","heat recovery is enabled (if available).","Blank means no limit.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Upper Enthalpy Limit",0,("Outdoor enthalpy above which economizer is disabled and","heat recovery is enabled (if available).","Blank means no limit.","Units: J/kg",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Supply Plenum Name","",("Plenum zone name.  Supply plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Return Plenum Name","",("Plenum zone name.  Supply plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Supply Fan Placement","DrawThrough","",["DrawThrough","BlowThrough",]))
        self.InsertField(FieldChoice(self,"Supply Fan Part-Load Power Coefficients","InletVaneDampers",("This field selects a predefined set of fan power coefficients.","The ASHRAE 90.1-2004 Appendix G coefficients are from TABLE G3.1.3.15, Method 2.","The other sets of coefficients are from the EnergyPlus Input","Output Reference, Fan Coefficient Values table.","",),["InletVaneDampers","OutletDampers","VariableSpeedMotor","ASHRAE90.1-2004AppendixG",]))
        self.InsertField(FieldChoice(self,"Night Cycle Control","StayOff","",["StayOff","CycleOnAny","CycleOnControlZone","CycleOnAnyZoneFansOnly",]))
        self.InsertField(FieldObjectlist(self,"Night Cycle Control Zone Name","",("Applicable only if Night Cycle Control is Cycle On Control Zone.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Heat Recovery Type","None",("If heat recovery is specified, then a value must be entered in","the Minimum Outdoor Air Flow Rate field, because heat recovery","equipment is not yet autosizable.","",),["None","Sensible","Enthalpy",]))
        self.InsertField(FieldReal(self,"Sensible Heat Recovery Effectiveness","0.70","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Heat Recovery Effectiveness","0.65","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Setpoint Reset Type","None",("Overrides Cooling Coil Setpoint Schedule Name","Warmest = as warm as possible yet meet all zone cooling loads","",),["None","Warmest","OutdoorAirTemperatureReset",]))
        self.InsertField(FieldChoice(self,"Heating Coil Setpoint Reset Type","None",("Overrides Heating Coil Setpoint Schedule Name","",),["None","OutdoorAirTemperatureReset",]))
        self.InsertField(FieldChoice(self,"Dehumidification Control Type","None",("None = meet sensible load only","CoolReheat = cool beyond the dry-bulb setpoint","as required to meet the humidity setpoint.","",),["None","CoolReheat",]))
        self.InsertField(FieldObjectlist(self,"Dehumidification Control Zone Name","",("Zone name where humidistat is located","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Dehumidification Setpoint","60.0",("Zone relative humidity setpoint in percent (0 to 100)","Units: percent",),0.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Humidifier Type","None","",["None","ElectricSteam",]))
        self.InsertField(FieldObjectlist(self,"Humidifier Availability Schedule Name","",("If blank, always available","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Humidifier Rated Capacity","0.000001",("Moisture output rate at full rated power input.","The humidifier does not currently autosize, so the default is very large","to allow for adequate capacity.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Humidifier Rated Electric Power","2690.0",("Electric power input at rated capacity moisture output.","The humidifier does not currently autosize, so the default power input is","consistent with the default capacity input (2690 W per 0.000001 m3/s output)","Power consumption is proportional to moisture output with no part-load penalty.","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Humidifier Control Zone Name","",("Zone name where humidistat is located","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Humidifier Setpoint","30.0",("Zone relative humidity setpoint in percent (0 to 100)","Units: percent",),0.0,100.0,"",""))


        self.insertMemo(("Variable Air Volume (VAV) air loop with optional heating coil","and optional preheat.","Referenced Schedules must be defined elsewhere in the idf.",))
        self.addReference("CompactHVACSystemVAV")
        self.setRequired(False)
        self.setMinfields(53)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:System:VAV")





class HVACTemplate_System_PackagedVAV(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"System Availability Schedule Name","",("If blank, always on; PVAV System always on.  Schedule is used in availability manager","and fan scheduling.","Also see *Night Cycle Control* field.","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Supply Fan Maximum Flow Rate","Autosize","","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Fan Minimum Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Supply Fan Placement","DrawThrough","",["DrawThrough","BlowThrough",]))
        self.InsertField(FieldReal(self,"Supply Fan Total Efficiency","0.7","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Delta Pressure","1000","",0,"","",""))
        self.InsertField(FieldReal(self,"Supply Fan Motor Efficiency","0.9","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Supply Fan Motor in Air Stream Fraction","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Type","TwoSpeedDX","",[" TwoSpeedDX"," TwoSpeedHumidControlDX",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Setpoint Schedule Name","",(" Leave blank if constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Cooling Coil Design Setpoint","12.8",(" Used for sizing and as constant setpoint if no Cooling Coil Setpoint Schedule Name is specified.","Units: C",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Capacity","Autosize",("Gross cooling capacity (net capacity plus fan heat)","Units: W",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Cooling Coil Rated Sensible Heat Ratio","Autosize",("Gross SHR","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Cooling Coil Rated COP","3.0",("Gross cooling capacity divided by power in","",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Heating Coil Type","None","",[" HotWater"," Electric"," Gas"," None",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Availability Schedule Name","",("If blank, always on","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating Coil Setpoint Schedule Name","",(" Leave blank if constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Heating Coil Design Setpoint","10.0",("  Used for sizing and as constant setpoint if no Heating Coil Setpoint Schedule Name is specified.","Units: C",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Heating Coil Capacity","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Efficiency","0.8","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Gas Heating Coil Parasitic Electric Load","0.0","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Minimum Outdoor Air Control Type","ProportionalMinimum","",["FixedMinimum","ProportionalMinimum",]))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Air Schedule Name","",("Schedule values multiply the Minimum Outdoor Air Flow Rate","If blank, always one","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Economizer Type","NoEconomizer","",["FixedDryBulb","FixedEnthalpy","DifferentialDryBulb","DifferentialEnthalpy","FixedDewPointAndDryBulb","ElectronicEnthalpy","DifferentialDryBulbAndEnthalpy","NoEconomizer",]))
        self.InsertField(FieldChoice(self,"Economizer Lockout","NoLockout","",["NoLockout","LockoutWithHeating","LockoutWithCompressor",]))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Dry-Bulb Temperature",0,("Enter the maximum outdoor dry-bulb temperature limit for FixedDryBulb","economizer control type. No input or blank input means this limit is","not operative. Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Enthalpy",0,("Enter the maximum outdoor enthalpy limit for FixedEnthalpy economizer control type.","No input or blank input means this limit is not operative","Limit is applied regardless of economizer control type.","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Dewpoint Temperature",0,("Enter the maximum outdoor dewpoint temperature limit for FixedDewPointAndDryBulb","economizer control type. No input or blank input means this limit is not operative.","Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Minimum Limit Dry-Bulb Temperature",0,("Enter the minimum outdoor dry-bulb temperature limit for economizer control.","No input or blank input means this limit is not operative","Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Supply Plenum Name","",("Plenum zone name.  Supply plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Return Plenum Name","",("Plenum zone name.  Supply plenum serves all zones on this system.","Blank if none.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Supply Fan Part-Load Power Coefficients","InletVaneDampers",("This field selects a predefined set of fan power coefficients.","The ASHRAE 90.1-2004 Appendix G coefficients are from TABLE G3.1.3.15, Method 2.","The other sets of coefficients are from the EnergyPlus Input","Output Reference, Fan Coefficient Values table.","",),["InletVaneDampers","OutletDampers","VariableSpeedMotor","ASHRAE90.1-2004AppendixG",]))
        self.InsertField(FieldChoice(self,"Night Cycle Control","StayOff","",["StayOff","CycleOnAny","CycleOnControlZone","CycleOnAnyZoneFansOnly",]))
        self.InsertField(FieldObjectlist(self,"Night Cycle Control Zone Name","",("Applicable only if Night Cycle Control is Cycle On Control Zone.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Heat Recovery Type","None",("If heat recovery is specified, then a value must be entered in","the Minimum Outdoor Air Flow Rate field, because heat recovery","equipment is not yet autosizable.","",),["None","Sensible","Enthalpy",]))
        self.InsertField(FieldReal(self,"Sensible Heat Recovery Effectiveness","0.70","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Heat Recovery Effectiveness","0.65","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Setpoint Reset Type","None",("Overrides Cooling Coil Setpoint Schedule Name","Warmest = as warm as possible yet meet all zone cooling loads","",),["None","Warmest","OutdoorAirTemperatureReset",]))
        self.InsertField(FieldChoice(self,"Heating Coil Setpoint Reset Type","None",("Overrides Heating Coil Setpoint Schedule Name","",),["None","OutdoorAirTemperatureReset",]))
        self.InsertField(FieldChoice(self,"Dehumidification Control Type","None",("None = meet sensible load only","CoolReheat = cool beyond the dry-bulb setpoint","as required to meet the humidity setpoint.","",),["None","CoolReheat",]))
        self.InsertField(FieldObjectlist(self,"Dehumidification Control Zone Name","",("Zone name where humidistat is located","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Dehumidification Setpoint","60.0",("Zone relative humidity setpoint in percent (0 to 100)","Units: percent",),0.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Humidifier Type","None","",["None","ElectricSteam",]))
        self.InsertField(FieldObjectlist(self,"Humidifier Availability Schedule Name","",("If blank, always available","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Humidifier Rated Capacity","0.000001",("Moisture output rate at full rated power input.","The humidifier does not currently autosize, so the default is very large","to allow for adequate capacity.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Humidifier Rated Electric Power","2690.0",("Electric power input at rated capacity moisture output.","The humidifier does not currently autosize, so the default power input is","consistent with the default capacity input (2690 W per 0.000001 m3/s output)","Power consumption is proportional to moisture output with no part-load penalty.","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Humidifier Control Zone Name","",("Zone name where humidistat is located","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Humidifier Setpoint","30.0",("Zone relative humidity setpoint in percent (0 to 100)","Units: percent",),0.0,100.0,"",""))


        self.insertMemo(("Packaged Variable Air Volume (PVAV) air loop with optional heating coil","and optional preheat.","Referenced Schedules must be defined elsewhere in the idf.",))
        self.addReference("CompactHVACSystemVAV")
        self.setRequired(False)
        self.setMinfields(50)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:System:PackagedVAV")





class HVACTemplate_Plant_ChilledWaterLoop(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Pump Schedule Name","",("If blank, always available","Applies to both chilled water and condenser loop pumps","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Pump Control Type","Intermittent",("Applies to both chilled water and condenser loop pumps","",),["Intermittent","Continuous",]))
        self.InsertField(FieldChoice(self,"Chiller Plant Operation Scheme Type","Default",("Default operation type makes all equipment available","at all times operating in order of Priority specified","in HVACTemplate:Plant:Chiller objects.","",),["Default","UserDefined",]))
        self.InsertField(FieldObjectlist(self,"Chiller Plant Equipment Operation Schemes Name","",("Name of a PlantEquipmentOperationSchemes object","Ignored if Chiller Plant Operation Scheme Type = Default","",),"PlantOperationSchemes"))
        self.InsertField(FieldObjectlist(self,"Chilled Water Setpoint Schedule Name","",(" Leave blank if constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Chilled Water Design Setpoint","7.22",("  Used for sizing and as constant setpoint if no Chilled Water Setpoint Schedule Name is specified.","Units: C",),"","","",""))
        self.InsertField(FieldChoice(self,"Chilled Water Pump Configuration","ConstantPrimaryNoSecondary",("VariablePrimaryNoSecondary - variable flow to chillers and coils","ConstantPrimaryNoSecondary - constant flow to chillers and coils, excess bypassed","ConstantPrimaryVariableSecondary - constant flow to chillers, variable flow to coils","VariablePrimaryConstantSecondary - variable flow to chillers, constant flow to coils","",),["ConstantPrimaryNoSecondary","VariablePrimaryNoSecondary","ConstantPrimaryVariableSecondary","VariablePrimaryConstantSecondary",]))
        self.InsertField(FieldReal(self,"Primary Chilled Water Pump Rated Head","179352",("default head is 60 feet H2O","Units: Pa",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Secondary Chilled Water Pump Rated Head","179352",("default head is 60 feet H2O","Units: Pa",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Condenser Plant Operation Scheme Type","Default",("Default operation type makes all equipment available","at all times operating in order of Priority specified","in HVACTemplate:Plant:Tower objects."," May be left blank if not serving any water cooled chillers","",),["Default","UserDefined",]))
        self.InsertField(FieldObjectlist(self,"Condenser Equipment Operation Schemes Name","",("Name of a CondenserEquipmentOperationSchemes object","Ignored if Condenser Plant Operation Scheme Type = Default"," May be left blank if not serving any water cooled chillers","",),"CondenserOperationSchemes"))
        self.InsertField(FieldChoice(self,"Condenser Water Temperature Control Type","",(" May be left blank if not serving any water cooled chillers","",),["OutdoorWetBulbTemperature","SpecifiedSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Condenser Water Setpoint Schedule Name","",(" Leave blank if constant setpoint"," May be left blank if not serving any water cooled chillers","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Condenser Water Design Setpoint","29.4",(" Used for sizing and as constant setpoint if no Condenser Water Setpoint Schedule Name is specified."," May be left blank if not serving any water cooled chillers","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Condenser Water Pump Rated Head","179352",(" May be left blank if not serving any water cooled chillers","default head is 60 feet H2O","Units: Pa",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Chilled Water Setpoint Reset Type","None",("Overrides Chilled Water Setpoint Schedule Name","",),["None","OutdoorAirTemperatureReset",]))
        self.InsertField(FieldReal(self,"Chilled Water Setpoint at Outdoor Dry-Bulb Low","12.2",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Reset Outdoor Dry-Bulb Low","15.6",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Setpoint at Outdoor Dry-Bulb High","6.7",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Reset Outdoor Dry-Bulb High","26.7",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))


        self.insertMemo(("Plant and condenser loops to serve all HVACTemplate","chilled water coils, chillers, and towers.",))
        self.setRequired(False)
        self.setMinfields(21)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Plant:ChilledWaterLoop")





class HVACTemplate_Plant_Chiller(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Chiller Type","","",["DistrictChilledWater","ElectricCentrifugalChiller","ElectricReciprocatingChiller",]))
        self.InsertField(FieldRealAutocalculate(self,"Capacity","Autosize","","","",0.0,""))
        self.InsertField(FieldReal(self,"Nominal COP",0,("Not applicable if Chiller Type is DistrictChilledWater","Electric Reciprocating Chiller","Units: W/W",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Condenser Type","WaterCooled",("Not applicable if Chiller Type is DistrictChilledWater","",),["AirCooled","WaterCooled","EvaporativelyCooled",]))
        self.InsertField(FieldText(self,"Priority","",("If Chiller Plant Operation Scheme Type=Default","in HVACTemplate:Plant:ChilledWaterLoop, then equipment","operates in Priority order, 1, 2, 3, etc.","",)))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Plant:Chiller")





class HVACTemplate_Plant_Tower(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Tower Type","","",["SingleSpeed","TwoSpeed",]))
        self.InsertField(FieldRealAutocalculate(self,"High Speed Nominal Capacity","Autosize",("Applicable for tower type SingleSpeed and TwoSpeed","Nominal tower capacity with entering water at 35C (95F), leaving water at","29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature and 35C (95F)","dry-bulb temperature, with the tower fan operating at high speed. Design water","flow rate assumed to be 5.382E-8 m3/s per watt(3 gpm/ton). Nominal tower capacity","times (1.25) gives the actual tower heat rejection at these operating conditions.","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"High Speed Fan Power","Autosize",("Applicable for tower type SingleSpeed and TwoSpeed","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Low Speed Nominal Capacity","Autosize",("Applicable only for Tower Type TwoSpeed","Nominal tower capacity with entering water at 35C (95F), leaving water at","29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature and 35C (95F)","dry-bulb temperature, with the tower fan operating at low speed. Design water flow","rate assumed to be 5.382E-8 m3/s per watt of tower high-speed nominal capacity","(3 gpm/ton). Nominal tower capacity times (1.25) gives the actual tower heat","rejection at these operating conditions.","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Low Speed Fan Power","Autosize",("Applicable only for Tower Type TwoSpeed","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Free Convection Capacity","Autosize",("Applicable for Tower Type SingleSpeed and TwoSpeed","Tower capacity in free convection regime with entering water at 35C (95F),","leaving water at 29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature","and 35C (95F) dry-bulb temperature. Design water flow rate assumed to be","5.382E-8 m3/s per watt of tower high-speed nominal capacity (3 gpm/ton). Tower","free convection capacity times (1.25) gives the actual tower heat rejection at","these operating conditions.","Units: W",),0.0,"","",""))
        self.InsertField(FieldText(self,"Priority","",("Applicable for all Tower Types","If Condenser Plant Operation Scheme Type=Default","in HVACTemplate:Plant:ChilledWaterLoop, then equipment","operates in Priority order, 1, 2, 3, etc.","",)))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Plant:Tower")





class HVACTemplate_Plant_HotWaterLoop(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Pump Schedule Name","",("If blank, always available","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Pump Control Type","Intermittent","",["Intermittent","Continuous",]))
        self.InsertField(FieldChoice(self,"Hot Water Plant Operation Scheme Type","Default",("Default operation type makes all equipment available","at all times operating in order of Priority specified","in HVACTemplate:Plant:Boiler objects.","",),["Default","UserDefined",]))
        self.InsertField(FieldObjectlist(self,"Hot Water Plant Equipment Operation Schemes Name","",("Name of a PlantEquipmentOperationSchemes object","Ignored if Plant Operation Scheme Type = Default","",),"PlantOperationSchemes"))
        self.InsertField(FieldObjectlist(self,"Hot Water Setpoint Schedule Name","",("Leave blank if constant setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Hot Water Design Setpoint","82.0",(" Used for sizing and as constant setpoint if no Setpoint Schedule Name is specified.","Units: C",),"","","",""))
        self.InsertField(FieldChoice(self,"Hot Water Pump Configuration","ConstantFlow",("VariableFlow - variable flow to boilers and coils, excess bypassed","ConstantFlow - constant flow to boilers and coils, excess bypassed","",),["VariableFlow","ConstantFlow",]))
        self.InsertField(FieldReal(self,"Hot Water Pump Rated Head","179352",("Default head is 60 feet H2O","Units: Pa",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Hot Water Setpoint Reset Type","None",("Overrides Hot Water Setpoint Schedule Name","",),["None","OutdoorAirTemperatureReset",]))
        self.InsertField(FieldReal(self,"Hot Water Setpoint at Outdoor Dry-Bulb Low","82.2",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Hot Water Reset Outdoor Dry-Bulb Low","-6.7",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Hot Water Setpoint at Outdoor Dry-Bulb High","65.6",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Hot Water Reset Outdoor Dry-Bulb High","10.0",("Applicable only for OutdoorAirTemperatureReset control.","Units: C",),"","","",""))


        self.insertMemo(("Plant loop to serve all HVACTemplate","hot water coils and boilers.",))
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("HVAC Templates") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Plant:HotWaterLoop")





class HVACTemplate_Plant_Boiler(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Boiler Type","","",["DistrictHotWater","HotWaterBoiler",]))
        self.InsertField(FieldRealAutocalculate(self,"Capacity","Autosize","","","",0.0,""))
        self.InsertField(FieldReal(self,"Efficiency","0.8",("Not applicable  if Boiler Type is DistrictHotWater","",),0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Fuel Type","",("Not applicable  if Boiler Type is DistrictHotWater","",),["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline",]))
        self.InsertField(FieldText(self,"Priority","",("If Hot Water Plant Operation Scheme Type=Default","in HVACTemplate:Plant:HotWaterLoop, then equipment","operates in priority order, 1, 2, 3, etc.","",)))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("HVAC Design Objects") 
        self.setExtensible(-1)
        self.setClassnameIDD("HVACTemplate:Plant:Boiler")





class Sizing_Parameters(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Sizing Factor","1.0","","","",0.0,""))
        self.InsertField(FieldInt(self,"Timesteps in Averaging Window",0,("blank => set the timesteps in averaging window to Number of Timesteps per Hour resulting in a 1 hour averaging window","",),1,"","",""))


        self.setRequired(False)
        self.setMinfields(1)
        self.setGroup("HVAC Design Objects") 
        self.setExtensible(-1)
        self.setClassnameIDD("Sizing:Parameters")





class Sizing_Zone(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Zone Cooling Design Supply Air Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Zone Heating Design Supply Air Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Zone Cooling Design Supply Air Humidity Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Zone Heating Design Supply Air Humidity Ratio",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Outdoor Air Method","Flow/Person","",["Flow/Person","Flow/Zone","Flow/Area","Sum","Maximum",]))
        self.InsertField(FieldReal(self,"Outdoor Air Flow per Person","0.00944",(".00944 is 20 cfm per person","This input is used if the field Outdoor Air Method is","Flow/Person, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow per Zone Floor Area","0.0",("This input is used if the field Outdoor Air Method is","Flow/Area, Sum, or Maximum","Units: m3/s-m2",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Air Flow per Zone",0,("This input is used if the field Outdoor Air Method is","Flow/Zone, Sum, or Maximum","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Zone Sizing Factor",0,("if blank, global sizing factor from Sizing:Parameters is used.","",),"","","",""))
        self.InsertField(FieldChoice(self,"Cooling Design Air Flow Method","DesignDay","",["Flow/Zone","DesignDay","DesignDayWithLimit",]))
        self.InsertField(FieldReal(self,"Cooling Design Air Flow Rate","0",("This input is used if Cooling Design Air Flow Method is Flow/Zone","Units: m3/s",),0,"","",""))
        self.InsertField(FieldReal(self,"Cooling Minimum Air Flow per Zone Floor Area",".000762",("default is .15 cfm/ft2","This input is used if Cooling Design Air Flow Method is design day with limit","Units: m3/s-m2",),0,"","",""))
        self.InsertField(FieldReal(self,"Cooling Minimum Air Flow","0",("This input is used if Cooling Design Air Flow Method is design day with limit","Units: m3/s",),0,"","",""))
        self.InsertField(FieldReal(self,"Cooling Minimum Air Flow Fraction","0",("fraction of the Cooling design Air Flow Rate","This input is currently used in sizing the Fan minimum Flow Rate.","It does not currently affect other component autosizing.","",),0,"","",""))
        self.InsertField(FieldChoice(self,"Heating Design Air Flow Method","DesignDay","",["Flow/Zone","DesignDay","DesignDayWithLimit",]))
        self.InsertField(FieldReal(self,"Heating Design Air Flow Rate","0",("This input is used if Heating Design Air Flow Method is Flow/Zone.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldReal(self,"Heating Maximum Air Flow per Zone Floor Area",".002032",("default is .40 cfm/ft2","This input is not currently used for autosizing any of the components.","Units: m3/s-m2",),0,"","",""))
        self.InsertField(FieldReal(self,"Heating Maximum Air Flow",".1415762",("default is 300 cfm","This input is not currently used for autosizing any of the components.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldReal(self,"Heating Maximum Air Flow Fraction","0.3",("fraction of the Heating Design Air Flow Rate","This input is not currently used for autosizing any of the components.","",),0,"","",""))


        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("HVAC Design Objects") 
        self.setExtensible(-1)
        self.setClassnameIDD("Sizing:Zone")





class Sizing_System(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"AirLoop Name","","","AirPrimaryLoops"))
        self.InsertField(FieldChoice(self,"Type of Load to Size On","Sensible",("Sensible is the only available option","",),["Sensible","VentilationRequirement","Latent","Total",]))
        self.InsertField(FieldRealAutocalculate(self,"Design Outdoor Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum System Air Flow Ratio",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Preheat Design Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Preheat Design Humidity Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Precool Design Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Precool Design Humidity Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Central Cooling Design Supply Air Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Central Heating Design Supply Air Temperature",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Sizing Option","NonCoincident","",["Coincident","NonCoincident",]))
        self.InsertField(FieldYesNo(self,"100% Outdoor Air in Cooling","No","",["Yes","No",]))
        self.InsertField(FieldYesNo(self,"100% Outdoor Air in Heating","No","",["Yes","No",]))
        self.InsertField(FieldReal(self,"Central Cooling Design Supply Air Humidity Ratio","0.008","","","","",""))
        self.InsertField(FieldReal(self,"Central Heating Design Supply Air Humidity Ratio","0.008","","","","",""))
        self.InsertField(FieldChoice(self,"Cooling Design Air Flow Method","DesignDay","",["Flow/System","DesignDay",]))
        self.InsertField(FieldReal(self,"Cooling Design Air Flow Rate","0","",0,"","",""))
        self.InsertField(FieldChoice(self,"Heating Design Air Flow Method","DesignDay","",["Flow/System","DesignDay",]))
        self.InsertField(FieldReal(self,"Heating Design Air Flow Rate","0","",0,"","",""))


        self.setRequired(False)
        self.setMinfields(19)
        self.setGroup("HVAC Design Objects") 
        self.setExtensible(-1)
        self.setClassnameIDD("Sizing:System")





class Sizing_Plant(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Plant or Condenser Loop Name","",("Enter the name of a PlantLoop or a CondenserLoop object","",),"PlantLoops"))
        self.InsertField(FieldChoice(self,"Loop Type","","",["Heating","Cooling","Condenser","Steam",]))
        self.InsertField(FieldReal(self,"Design Loop Exit Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Loop Design Temperature Difference",0,"","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("HVAC Design Objects") 
        self.setExtensible(-1)
        self.setClassnameIDD("Sizing:Plant")





class OutputControl_Sizing_Style(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Column Separator","","",["Comma","Tab","Fixed",]))


        self.insertMemo(("default style for the Sizing output files is comma -- this works well for","importing into spreadsheet programs such as Excel(tm) but not so well for word","processing progams -- there tab may be a better choice.  fixed puts spaces between","the *columns*",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("OutputControl:Sizing:Style")





class ZoneControl_Humidistat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Humidifying Relative Humidity Setpoint Schedule Name","",("hourly schedule values should be in Relative Humidity (percent)","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Dehumidifying Relative Humidity Setpoint Schedule Name","",("hourly schedule values should be in Relative Humidity (percent)","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneControl:Humidistat")





class ZoneControl_Thermostat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Control Type Schedule Name","",("This schedule contains appropriate control types for thermostat.","Control types are integers: 0 - Uncontrolled (floating, no thermostat), 1 = ThermostatSetpoint:SingleHeating,","2 = ThermostatSetpoint:SingleCooling, 3 = ThermostatSetpoint:SingleHeatingOrCooling, 4 = ThermostatSetpoint:DualSetpoint","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control 1 Object Type","","",["ThermostatSetpoint:SingleHeating","ThermostatSetpoint:SingleCooling","ThermostatSetpoint:SingleHeatingOrCooling","ThermostatSetpoint:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control 1 Name","",("Control names are names of individual control objects (e.g. ThermostatSetpoint:SingleHeating)","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ControlTypeNames"))
        self.InsertField(FieldChoice(self,"Control 2 Object Type","","",["ThermostatSetpoint:SingleHeating","ThermostatSetpoint:SingleCooling","ThermostatSetpoint:SingleHeatingOrCooling","ThermostatSetpoint:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control 2 Name","",("Control names are names of individual control objects (e.g. ThermostatSetpoint:SingleHeating)","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ControlTypeNames"))
        self.InsertField(FieldChoice(self,"Control 3 Object Type","","",["ThermostatSetpoint:SingleHeating","ThermostatSetpoint:SingleCooling","ThermostatSetpoint:SingleHeatingOrCooling","ThermostatSetpoint:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control 3 Name","",("Control names are names of individual control objects (e.g. ThermostatSetpoint:SingleHeating)","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ControlTypeNames"))
        self.InsertField(FieldChoice(self,"Control 4 Object Type","","",["ThermostatSetpoint:SingleHeating","ThermostatSetpoint:SingleCooling","ThermostatSetpoint:SingleHeatingOrCooling","ThermostatSetpoint:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control 4 Name","",("Control names are names of individual control objects (e.g. ThermostatSetpoint:SingleHeating)","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ControlTypeNames"))


        self.addReference("ZoneControlThermostaticNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneControl:Thermostat")





class ZoneControl_Thermostat_OperativeTemperature(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Thermostat Name","",("Enter the name of a ZoneControl:Thermostat object.","This object modifies a ZoneControl:Thermostat object to add a","radiative fraction.","",),"ZoneControlThermostaticNames"))
        self.InsertField(FieldChoice(self,"Radiative Fraction Input Mode","","",["Constant","Scheduled",]))
        self.InsertField(FieldReal(self,"Fixed Radiative Fraction",0,"",0.0,"","",0.9))
        self.InsertField(FieldObjectlist(self,"Radiative Fraction Schedule Name","",("Schedule values of 0.0 indicate no operative temperature control","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneControl:Thermostat:OperativeTemperature")





class ZoneControl_Thermostat_ThermalComfort(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldChoice(self,"Averaging Method","PeopleAverage",("The method used to calculate thermal comfort dry-bulb temperature setpoint","for multiple people objects in a zone","",),["SpecificObject","ObjectAverage","PeopleAverage",]))
        self.InsertField(FieldObjectlist(self,"Specific People Name","",("Used only when Averaging Method = SpecificObject in the previous field.","",),"PeopleNames"))
        self.InsertField(FieldReal(self,"Minimum Dry-Bulb Temperature Setpoint","0","",0,50,"",""))
        self.InsertField(FieldReal(self,"Maximum Dry-Bulb Temperature Setpoint","50","",0,50,"",""))
        self.InsertField(FieldObjectlist(self,"Thermal Comfort Control Type Schedule Name","",("The Thermal Comfort Control Type Schedule contains values that are appropriate control types.","Thermal Comfort Control types are integers: 0 - Uncontrolled (floating),","1 = ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating","2 = ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling","3 = ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling","4 = ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Thermal Comfort Control 1 Object Type","","",["ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating","ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling","ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling","ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Thermal Comfort Control 1 Name","",("Control type names are names for individual control type objects.","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ThermalComfortControlTypeNames"))
        self.InsertField(FieldChoice(self,"Thermal Comfort Control 2 Object Type","","",["ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating","ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling","ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling","ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Thermal Comfort Control 2 Name","",("Control Type names are names for individual control type objects.","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ThermalComfortControlTypeNames"))
        self.InsertField(FieldChoice(self,"Thermal Comfort Control 3 Object Type","","",["ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating","ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling","ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling","ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Thermal Comfort Control 3 Name","",("Control type names are names for individual control type objects.","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ThermalComfortControlTypeNames"))
        self.InsertField(FieldChoice(self,"Thermal Comfort Control 4 Object Type","","",["ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating","ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling","ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling","ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Thermal Comfort Control 4 Name","",("Control type names are names for individual control type objects.","Schedule values in these objects list actual setpoint temperatures for the control types","",),"ThermalComfortControlTypeNames"))


        self.addReference("ZoneControlThermalComfortNames")
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneControl:Thermostat:ThermalComfort")





class ThermostatSetpoint_SingleHeating(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Setpoint Temperature Schedule Name","","","ScheduleNames"))


        self.addReference("ControlTypeNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:SingleHeating")





class ThermostatSetpoint_SingleCooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Setpoint Temperature Schedule Name","","","ScheduleNames"))


        self.addReference("ControlTypeNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:SingleCooling")





class ThermostatSetpoint_SingleHeatingOrCooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Setpoint Temperature Schedule Name","","","ScheduleNames"))


        self.addReference("ControlTypeNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:SingleHeatingOrCooling")





class ThermostatSetpoint_DualSetpoint(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Heating Setpoint Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Setpoint Temperature Schedule Name","","","ScheduleNames"))


        self.addReference("ControlTypeNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:DualSetpoint")





class ThermostatSetpoint_ThermalComfort_Fanger_SingleHeating(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Fanger Thermal Comfort Schedule Name","",("Schedule values should be Predicted Mean Vote (PMV)","",),"ScheduleNames"))


        self.addReference("ThermalComfortControlTypeNames")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating")





class ThermostatSetpoint_ThermalComfort_Fanger_SingleCooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Fanger Thermal Comfort Schedule Name","",("Schedule values should be Predicted Mean Vote (PMV)","",),"ScheduleNames"))


        self.addReference("ThermalComfortControlTypeNames")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling")





class ThermostatSetpoint_ThermalComfort_Fanger_SingleHeatingOrCooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Fanger Thermal Comfort Schedule Name","",("Schedule values should be Predicted Mean Vote (PMV)","",),"ScheduleNames"))


        self.addReference("ThermalComfortControlTypeNames")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Zone HVAC Controls and Thermostats") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling")





class ThermostatSetpoint_ThermalComfort_Fanger_DualSetpoint(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Fanger Thermal Comfort Heating Schedule Name","",("Schedule values should be Predicted Mean Vote (PMV)","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Fanger Thermal Comfort Cooling Schedule Name","",("Schedule values should be Predicted Mean Vote (PMV)","",),"ScheduleNames"))


        self.addReference("ThermalComfortControlTypeNames")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint")





class ZoneHVAC_IdealLoadsAirSystem(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Zone Supply Air Node Name","",""))
        self.InsertField(FieldReal(self,"Heating Supply Air Temperature",0,"","","",0,100))
        self.InsertField(FieldReal(self,"Cooling Supply Air Temperature",0,"","","",-100,50))
        self.InsertField(FieldReal(self,"Heating Supply Air Humidity Ratio",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Cooling Supply Air Humidity Ratio",0,"","","",0,""))
        self.InsertField(FieldChoice(self,"Heating Limit","NoLimit","",["Limit","NoLimit",]))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Heating Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Cooling Limit","NoLimit","",["Limit","NoLimit",]))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Cooling Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Outdoor Air","NoOutdoorAir","",["OutdoorAir","NoOutdoorAir",]))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Heating Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Availability Schedule Name","","","ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:IdealLoadsAirSystem")





class ZoneHVAC_FourPipeFanCoil(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Outdoor Air Node Name","",""))
        self.InsertField(FieldText(self,"Air Relief Node Name","",""))
        self.InsertField(FieldText(self,"Cold Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Hot Water Inlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Outdoor Air Mixer Name","","","OutdoorAirMixers"))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Fan type must be Fan:ConstantVolume","",),"FansCV"))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsWater"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Cold Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Cold Water Flow Rate","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Cooling Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilsWater"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water Flow Rate","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Heating Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:Water","Coil:Cooling:Water:DetailedGeometry","CoilSystem:Cooling:Water:HeatExchangerAssisted",]))


        self.setRequired(False)
        self.setMinfields(21)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:FourPipeFanCoil")





class ZoneHVAC_WindowAirConditioner(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Outdoor Air Node Name","",""))
        self.InsertField(FieldText(self,"Air Relief Node Name","",""))
        self.InsertField(FieldText(self,"Outdoor Air Mixer Name","",""))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Fan type Fan:ConstantVolume is used with continuous fan","and fan type Fan:OnOff is used with cycling Fan.","",),"FansCVandOnOff"))
        self.InsertField(FieldObjectlist(self,"DX Cooling Coil Name","","","CoolingCoilsDXSingleSpeed"))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("Enter the name of a schedule that controls fan operation. Schedule Name values of 0 denote","cycling fan operation (fan cycles with cooling coil). Schedule values greater","than 0 denote constant fan operation (fan runs continually regardless of coil operation).","The fan operating mode defaults to cycling fan operation if this field is left blank.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Fan Placement","","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldReal(self,"Cooling Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted",]))


        self.setRequired(False)
        self.setMinfields(15)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:WindowAirConditioner")





class ZoneHVAC_PackagedTerminalAirConditioner(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Unique name for this packaged terminal air conditioner object.","",)))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("Schedule values of 0 denote the unit is off.","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("Air inlet node for the PTAC must be a zone air exhaust Node.","",)))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("Air outlet node for the PTAC must be a zone air inlet node.","",)))
        self.InsertField(FieldText(self,"Outdoor Air Mixer Name","",("Needs to match the name of the PTAC outdoor air mixer object.","",)))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Cooling Operation",0,("Must be less than or equal to fan size.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Heating Operation",0,("Must be less than or equal to fan size.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate When No Cooling or Heating is Needed",0,("Must be less than or equal to fan size.","Only used when supply air fan operating mode schedule values specify continuous fan","(schedule values greater than 0 specify continuous fan operation).","This air flow rate is used when no heating or cooling is required and the cooling or","heating coil is off. If this field is left blank or zero, the supply air flow rate","from the previous on cycle (either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate During Cooling Operation",0,("Must be less than or equal to supply air flow rate during cooling operation.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate During Heating Operation",0,("Must be less than or equal to supply air flow rate during heating operation.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate When No Cooling or Heating is Needed",0,("Only used when supply air fan operating mode schedule values specify continuous fan","(schedule values greater than 0 specify continuous fan operation).","This air flow rate is used when no heating or cooling is required and the cooling or","heating coil is off. If this field is left blank or zero, the outdoor air flow rate","from the previous on cycle (either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldChoice(self,"Supply Air Fan Object Type","",("Fan:ConstantVolume only works when continuous fan operation is used the entire","simulation (all supply air fan operating mode schedule values are greater than 0).","If any fan operating mode schedule values are 0 a Fan:OnOff object must be used.","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Name","",("Needs to match in the fan object.","",),"FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",("Select the type of heating coil.","",),["Coil:Heating:Gas","Coil:Heating:Electric","Coil:Heating:Water","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","",("Needs to match in the heating coil object.","",),"HeatingCoilName"))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","",("Select the type of Cooling Coil.","Only works with Coil:Cooling:DX:SingleSpeed or","CoilSystem:Cooling:DX:HeatExchangerAssisted.","",),["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","",("Needs to match a DX cooling coil object.","",),"CoolingCoilsDXSingleSpeed"))
        self.InsertField(FieldChoice(self,"Fan Placement","DrawThrough",("Select fan placement as either blow through or draw through.","",),["BlowThrough","DrawThrough",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("Enter the name of a schedule that controls fan operation. Schedule Name values of 0 denote","cycling fan operation (fan cycles with cooling or heating coil). Schedule Name values greater","than 0 denote constant fan operation (fan runs continually regardless of coil operation).","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(17)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:PackagedTerminalAirConditioner")





class ZoneHVAC_PackagedTerminalHeatPump(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Unique name for this packaged terminal heat pump object.","",)))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("Schedule values of 0 denote the unit is off.","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("Air inlet node for the PTHP must be a zone air exhaust node.","",)))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("Air outlet node for the PTHP must be a zone air inlet node.","",)))
        self.InsertField(FieldText(self,"Outdoor Air Mixer Name","",("Needs to match name of outdoor air mixer object.","",)))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Cooling Operation",0,("Must be less than or equal to fan size.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Heating Operation",0,("Must be less than or equal to fan size.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate When No Cooling or Heating is Needed",0,("Must be less than or equal to fan size.","Only used when heat pump fan operating mode is ContinuousFanWithCyclingCompressor. This air flow rate","is used when no heating or cooling is required and the DX coil compressor is off.","If this field is left blank or zero, the supply air flow rate from the previous on cycle","(either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate During Cooling Operation",0,("Must be less than or equal to supply air flow rate during cooling operation.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate During Heating Operation",0,("Must be less than or equal to supply air flow rate during heating operation.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate When No Cooling or Heating is Needed",0,("Only used when heat pump Fan operating mode is ContinuousFanWithCyclingCompressor. This air flow rate","is used when no heating or cooling is required and the DX coil compressor is off.","If this field is left blank or zero, the outdoor air flow rate from the previous on cycle","(either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldChoice(self,"Supply Air Fan Object Type","",("Fan:ConstantVolume only works with operating mode = ContinuousFanWithCyclingCompressor.","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Name","",("Needs to match a fan object.","",),"FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",("Only works with Coil:Heating:DX:SingleSpeed.","",),["Coil:Heating:DX:SingleSpeed",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","",("Needs to match in the DX Heating Coil object.","",),"HeatingCoilsDXSingleSpeed"))
        self.InsertField(FieldReal(self,"Heating Convergence Tolerance","0.001",("Defines Heating convergence tolerence as a fraction of Heating load to be met.","Units: dimensionless",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Outdoor Dry-Bulb Temperature for Compressor Operation","-8.0",("Needs to match the corresponding minimum outdoor temperature defined","in the DX Heating Coil object.","Units: C",),-20.0,"","",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","",("Only works with Coil:Cooling:DX:SingleSpeed or","CoilSystem:Cooling:DX:HeatExchangerAssisted.","",),["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","",("Needs to match in the DX Cooling Coil object.","",),"CoolingCoilsDXSingleSpeed"))
        self.InsertField(FieldReal(self,"Cooling Convergence Tolerance","0.001",("Defines Cooling convergence tolerence as a fraction of the Cooling load to be met.","Units: dimensionless",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Supplemental Heating Coil Object Type","",("Only works with Coil:Heating:Gas or Coil:Heating:Electric.","",),["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Supplemental Heating Coil Name","",("Needs to match in the supplemental heating coil object.","",),"HeatingCoilsGasElec"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature from Supplemental Heater",0,("Supply air temperature from the supplemental heater will not exceed this value.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation","21.0",("Supplemental heater will not operate when outdoor temperature exceeds this value.","Units: C",),"",21.0,"",""))
        self.InsertField(FieldChoice(self,"Fan Placement","DrawThrough",("Select fan placement as either blow through or draw through.","",),["BlowThrough","DrawThrough",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("Enter the name of a schedule that controls fan operation. Schedule values of 0 denote","cycling fan operation (fan cycles with cooling or heating coil). Schedule Name values greater","than 0 denote constant fan operation (fan runs continually regardless of coil operation).","The fan operating mode defaults to cycling fan operation if this field is left blank.","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(26)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:PackagedTerminalHeatPump")





class ZoneHVAC_EnergyRecoveryVentilator(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heat Exchanger Name","",("Heat exchanger type must be HeatExchanger:AirToAir:SensibleAndLatent","",),"HXAirToAirSensibleAndLatentNames"))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate",0,("This flow rate must match the supply fan's air flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Exhaust Air Flow Rate",0,("This flow rate must match the supply fan air flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Name","",("Fan type must be Fan:OnOff","",),"FansOnOff"))
        self.InsertField(FieldObjectlist(self,"Exhaust Air Fan Name","",("Fan type must be Fan:OnOff","",),"FansOnOff"))
        self.InsertField(FieldObjectlist(self,"Controller Name","",("Enter the name of a ZoneHVAC:EnergyRecoveryVentilator:Controller object.","",),"ControllerStandAloneEnergyRecoveryVentilator"))
        self.InsertField(FieldReal(self,"Ventilation Rate per Unit Floor Area",0,("0.000508 m3/s-m2 corresponds to 0.1 ft3/min-ft2","Used only when supply and exhaust air flow rates are autosized.","Units: m3/s-m2",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Ventilation Rate per Occupant",0,("0.00236 m3/s-person corresponds to 5 ft3/min-person","Used only when supply and exhaust air flow rates are autosized.","Units: m3/s-person",),0.0,"","",""))


        self.insertMemo(("This compound component models a stand-alone energy recovery ventilator (ERV)","that conditions outdoor ventilation air and supplies that air directly to a zone.","The ERV unit is modeled as a collection of components: air-to-air heat exchanger,","supply air fan, exhaust air fan and an optional controller to avoid overheating","of the supply air (economizer or free cooling operation).",))
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:EnergyRecoveryVentilator")





class ZoneHVAC_EnergyRecoveryVentilator_Controller(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Temperature High Limit",0,("Enter the maximum outdoor dry-bulb temperature limit for economizer operation.","No input or blank input means this limit is not operative","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature Low Limit",0,("Enter the minimum outdoor dry-bulb temperature limit for economizer operation.","No input or blank input means this limit is not operative","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Enthalpy High Limit",0,("Enter the maximum outdoor enthalpy limit for economizer operation.","No input or blank input means this limit is not operative","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Limit",0,("Enter the maximum outdoor dewpoint temperature limit for economizer operation.","No input or blank input means this limit is not operative","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Electronic Enthalpy Limit Curve Name","",("Enter the name of a quadratic or cubic curve which defines the maximum outdoor","humidity ratio (function of outdoor dry-bulb temperature) for economizer operation.","No input or blank input means this limit is not operative","",),"QuadraticCubicCurves"))
        self.InsertField(FieldChoice(self,"Exhaust Air Temperature Limit","NoExhaustAirTemperatureLimit","",["ExhaustAirTemperatureLimit","NoExhaustAirTemperatureLimit",]))
        self.InsertField(FieldChoice(self,"Exhaust Air Enthalpy Limit","NoExhaustAirEnthalpyLimit","",["ExhaustAirEnthalpyLimit","NoExhaustAirEnthalpyLimit",]))
        self.InsertField(FieldObjectlist(self,"Time of Day Economizer Flow Control Schedule Name","",("Schedule values greater than 0 indicate economizer operation is active. This","schedule may be used with or without the High Humidity Control option.","When used together, high humidity control has priority over economizer control.","",),"ScheduleNames"))
        self.InsertField(FieldYesNo(self,"High Humidity Control Flag","No",("Select Yes to modify air flow rates based on a zone humidistat.","Select No to disable this feature.","",),["Yes","No",]))
        self.InsertField(FieldObjectlist(self,"Humidistat Control Zone Name","",("Enter the name of the zone where the humidistat is located.","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"High Humidity Outdoor Air Flow Ratio","1.0",("Enter the ratio of supply (outdoor) air to the maximum supply air flow rate when modified","air flow rates are active based on high indoor humidity.","",),"","",0.0,""))
        self.InsertField(FieldYesNo(self,"Control High Indoor Humidity Based on Outdoor Humidity Ratio","Yes",("If NO is selected, the air flow rate is modified any time indoor relative","humidity is above humidistat setpoint. If YES is selected, outdoor air flow","rate is modified any time indoor relative humidity is above the humidistat","setpoint AND the outdoor humidity ratio is less than the indoor humidity ratio.","",),["Yes","No",]))


        self.insertMemo(("This controller is used exclusively by the ZoneHVAC:EnergyRecoveryVentilator object","to allow economizer (free cooling) operation when possible.",))
        self.addReference("ControllerStandAloneEnergyRecoveryVentilator")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:EnergyRecoveryVentilator:Controller")





class ZoneHVAC_UnitVentilator(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Flow Rate",0,"","","",0,""))
        self.InsertField(FieldChoice(self,"Outdoor Air Control Type","","",["FixedAmount","VariablePercent","FixedTemperature",]))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Outdoor Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Air Schedule Name","",("schedule values multiply the minimum outdoor air flow rate","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate",0,"",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Maximum Outdoor Air Fraction or Temperature Schedule Name","",("that this depends on the control type as to whether it is a fraction or temperature","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Fan Outlet Node Name","",(" inlet to heating coil","",)))
        self.InsertField(FieldText(self,"Outdoor Air Node Name","",""))
        self.InsertField(FieldText(self,"Exhaust Air Node Name","",""))
        self.InsertField(FieldText(self,"Mixed Air Node Name","",("inlet to coils","",)))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Allowable fan types are Fan:ConstantVolume and","Fan:VariableVolume","",),"FansCVandVAV"))
        self.InsertField(FieldChoice(self,"Coil Option","","",["None","Heating","Cooling","HeatingAndCooling",]))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when heating coil is gas or electric","",)))
        self.InsertField(FieldReal(self,"Heating Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:Water","Coil:Cooling:Water:DetailedGeometry","CoilSystem:Cooling:Water:HeatExchangerAssisted",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsWater"))
        self.InsertField(FieldText(self,"Cold Water Inlet Node Name","",""))
        self.InsertField(FieldReal(self,"Cooling Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(16)
        self.setGroup("Zone HVAC Forced Air Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:UnitVentilator")





class ZoneHVAC_UnitHeater(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Allowable fan types are Fan:ConstantVolume and","Fan:VariableVolume","",),"FansCVandVAV"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Flow Rate",0,"","","",0,""))
        self.InsertField(FieldChoice(self,"Fan Control Type","","",["OnOff","Continuous",]))
        self.InsertField(FieldText(self,"Fan Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water or Steam Flow Rate",0,("Not used when heating coil is gas or electric","Units: m3/s",),"","",0,""))
        self.InsertField(FieldReal(self,"Minimum Hot Water or Steam Flow Rate","0",("Not used when heating coil is gas or electric","Units: m3/s",),0,"","",""))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when heating coil is gas or electric","",)))
        self.InsertField(FieldReal(self,"Heating Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:UnitHeater")





class ZoneHVAC_Baseboard_RadiantConvective_Water(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Average Water Temperature",0,("Select an average water temperature for the same or similar baseboard in I=B=R document.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Standard Water Mass Flow Rate","0.063",("Standard is I=B=R Rating document where all baseboards are rated at either 0.063 kg/s (1 gpm)","or 0.252 kg/s (4 gpm).  It is recommended that users find data for the baseboard heater that","corresponds to performance at 0.063 kg/s unless the flow rate is expected to be above 0.252 kg/s.","If the flow rate is expected to be above 0.252 kg/s, this field should be 0.252 kg/s.","Units: Kg/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Capacity",0,("User should multiply the actual finned length provided by the manufacturers to the rated capacity","in I=B=R document.","Units: W",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldReal(self,"Fraction Radiant",0,"",0,1,"",""))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy Incident on People",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","",("Radiant energy may be distributed to specific surfaces","",),"AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 1",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 2 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 2",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 3 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 3",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 4 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 4",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 5 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 5",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 6 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 6",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 7 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 7",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 8 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 8",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 9 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 9",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 10 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 10",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 11 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 11",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 12 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 12",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 13 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 13",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 14 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 14",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 15 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 15",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 16 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 16",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 17 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 17",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 18 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 18",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 19 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 19",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 20 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 20",0,"",0,1,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:Baseboard:RadiantConvective:Water")





class ZoneHVAC_Baseboard_Convective_Water(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"U-Factor Times Area Value",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:Baseboard:Convective:Water")





class ZoneHVAC_Baseboard_Convective_Electric(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"","","","",""))
        self.InsertField(FieldReal(self,"Efficiency","1.0","","",1.0,0.0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:Baseboard:Convective:Electric")





class ZoneHVAC_LowTemperatureRadiant_VariableFlow(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of zone system is serving","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface Name or Radiant Surface Group Name","",("Identifies surfaces that radiant system is embedded in.","For a system with multiple surfaces, enter the name of","a ZoneHVAC:LowTemperatureRadiant:SurfaceGroup object.","",),"RadGroupAndSurfNames"))
        self.InsertField(FieldReal(self,"Hydronic Tubing Inside Diameter","0.013","","","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Hydronic Tubing Length",0,("(total length of pipe embedded in surface)","Units: m",),"","",0,""))
        self.InsertField(FieldChoice(self,"Temperature Control Type","MeanAirTemperature",("(Temperature on which unit is controlled)","",),["MeanAirTemperature","MeanRadiantTemperature","OperativeTemperature","OutdoorDryBulbTemperature","OutdoorWetBulbTemperature",]))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water Flow",0,"",0,"","",""))
        self.InsertField(FieldText(self,"Heating Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heating Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Heating Control Throttling Range","0","",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Heating Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Cold Water Flow",0,"",0,"","",""))
        self.InsertField(FieldText(self,"Cooling Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Cooling Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Cooling Control Throttling Range","0","",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Cooling Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Condensation Control Type","SimpleOff","",["Off","SimpleOff",]))
        self.InsertField(FieldReal(self,"Condensation Control Dewpoint Offset","1.0","","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:LowTemperatureRadiant:VariableFlow")





class ZoneHVAC_LowTemperatureRadiant_ConstantFlow(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of zone system is serving","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface Name or Radiant Surface Group Name","",("Identifies surfaces that radiant system is embedded in.","For a system with multiple surfaces, enter the name of","a ZoneHVAC:LowTemperatureRadiant:SurfaceGroup object.","",),"RadGroupAndSurfNames"))
        self.InsertField(FieldReal(self,"Hydronic Tubing Inside Diameter","0.013","","","",0,""))
        self.InsertField(FieldReal(self,"Hydronic Tubing Length",0,("Total length of pipe embedded in surface","Units: m",),"","",0,""))
        self.InsertField(FieldChoice(self,"Temperature Control Type","MeanAirTemperature",("Temperature used to control system","",),["MeanAirTemperature","MeanRadiantTemperature","OperativeTemperature","OutdoorDryBulbTemperature","OutdoorWetBulbTemperature",]))
        self.InsertField(FieldReal(self,"Rated Flow Rate",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Pump Flow Rate Schedule Name","",("Modifies the Rated Flow Rate of the pump on a time basis","the default is that the pump is ON and runs according to its other","operational requirements specified above.  The schedule is for special","pump operations.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Rated Pump Head","179352",("default head is 60 feet","Units: Pa",),"","","",""))
        self.InsertField(FieldReal(self,"Rated Power Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Motor Inefficiencies to Fluid Stream","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Heating Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heating Water Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Heating High Water Temperature Schedule Name","",("Water and control temperatures for heating work together to provide","a linear function that determines the water temperature sent to the","radiant system.  The current control temperature (see Temperature Control Type above) is","compared to the high and low control temperatures at the current time.","If the control temperature is above the high temperature, then the","inlet water temperature is set to the low water temperature.  If the","control temperature is below the low temperature, then the inlet","water temperature is set to the high water temperature.  If the control","temperature is between the high and low value, then the inlet water","temperature is linearly interpolated between the low and high water","temperature values.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating Low Water Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating High Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating Low Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Cooling Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Cooling Water Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Cooling High Water Temperature Schedule Name","",("See note for Heating High Water Temperature Schedule above for","interpretation information (or see the Input/Output Reference).","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Low Water Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling High Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Low Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Condensation Control Type","SimpleOff","",["Off","SimpleOff",]))
        self.InsertField(FieldReal(self,"Condensation Control Dewpoint Offset","1.0","","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:LowTemperatureRadiant:ConstantFlow")





class ZoneHVAC_LowTemperatureRadiant_Electric(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of zone system is serving","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface Name or Radiant Surface Group Name","",("Identifies surfaces that radiant system is embedded in.","For a system with multiple surfaces, enter the name of","a ZoneHVAC:LowTemperatureRadiant:SurfaceGroup object.","",),"RadGroupAndSurfNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Electrical Power to Panel",0,"",0,"","",""))
        self.InsertField(FieldChoice(self,"Temperature Control Type","MeanAirTemperature",("Temperature used to control unit","",),["MeanAirTemperature","MeanRadiantTemperature","OperativeTemperature","OutdoorDryBulbTemperature","OutdoorWetBulbTemperature",]))
        self.InsertField(FieldReal(self,"Heating Throttling Range","0","",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Heating Setpoint Temperature Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Electric resistance low temperature radiant system",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:LowTemperatureRadiant:Electric")





class ZoneHVAC_LowTemperatureRadiant_SurfaceGroup(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Flow Fraction for Surface 1",0,"",0.0,"","",""))


        self.insertMemo(("This is used to allow the coordinate control of several radiant system surfaces.","Note that the following flow fractions must sum up to 1.0","The number of surfaces can be expanded beyond 10, if necessary, by adding more","groups to the end of the list",))
        self.addReference("RadGroupAndSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(2)
        self.setClassnameIDD("ZoneHVAC:LowTemperatureRadiant:SurfaceGroup")





class ZoneHVAC_HighTemperatureRadiant(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("Name of zone system is serving","",),"ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Power Input",0,"",0,"","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","",("gas or electric","",),["Gas","Electric",]))
        self.InsertField(FieldReal(self,"Combustion Efficiency","0.9",("Not used for non-gas radiant heaters","",),0,1,"",""))
        self.InsertField(FieldReal(self,"Fraction of Input Converted to Radiant Energy","0.7",("Radiant+latent+lost fractions must sum to 1 or less, remainder is considered convective heat","",),0,1,"",""))
        self.InsertField(FieldReal(self,"Fraction of Input Converted to Latent Energy","0.0","",0,1,"",""))
        self.InsertField(FieldReal(self,"Fraction of Input that Is Lost","0.0",("Fraction of input vented to outdoor environment","",),0,1,"",""))
        self.InsertField(FieldChoice(self,"Temperature Control Type","OperativeTemperature",("Temperature type used to control unit","",),["MeanAirTemperature","MeanRadiantTemperature","OperativeTemperature","MeanAirTemperatureSetpoint","MeanRadiantTemperatureSetpoint","OperativeTemperatureSetpoint",]))
        self.InsertField(FieldReal(self,"Heating Throttling Range","2.0","",0,"","",""))
        self.InsertField(FieldObjectlist(self,"Heating Setpoint Temperature Schedule Name","",("This setpoint is an *operative temperature* setpoint","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy Incident on People",0,("This will affect thermal comfort but from an energy balance standpoint this value","gets added to the convective gains from the radiant heater","",),0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","",("Radiant energy may be distributed to specific surfaces","",),"AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 1",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 2 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 2",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 3 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 3",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 4 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 4",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 5 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 5",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 6 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 6",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 7 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 7",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 8 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 8",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 9 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 9",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 10 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 10",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 11 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 11",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 12 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 12",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 13 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 13",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 14 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 14",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 15 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 15",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 16 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 16",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 17 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 17",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 18 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 18",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 19 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 19",0,"",0,1,"",""))
        self.InsertField(FieldObjectlist(self,"Surface 20 Name","","","AllHeatTranSurfNames"))
        self.InsertField(FieldReal(self,"Fraction of Radiant Energy to Surface 20",0,"",0,1,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:HighTemperatureRadiant")





class ZoneHVAC_VentilatedSlab(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("(name of zone system is serving)","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface Name or Radiant Surface Group Name","",("(name of surface system is embedded in) or list of surfaces","",),"RadGroupAndSurfNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"","","",0,""))
        self.InsertField(FieldChoice(self,"Outdoor Air Control Type","","",["VariablePercent","FixedTemperature","FixedAmount",]))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Outdoor Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Air Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate",0,("schedule values multiply the minimum outdoor air flow rate","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Maximum Outdoor Air Fraction or Temperature Schedule Name","",("Note that this depends on the control type as to whether schedule values are a fraction or temperature","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"System Configuration Type","SlabOnly","",["SlabOnly","SlabAndZone","SeriesSlabs",]))
        self.InsertField(FieldReal(self,"Hollow Core Inside Diameter","00.05","",0,"","",""))
        self.InsertField(FieldReal(self,"Hollow Core Length",0,("(length of core cavity embedded in surface)","Units: m",),0,"","",""))
        self.InsertField(FieldReal(self,"Number of Cores",0,("flow will be divided evenly among the cores","",),0,"","",""))
        self.InsertField(FieldChoice(self,"Temperature Control Type","OutdoorDryBulbTemperature",("(temperature on which unit is controlled)","",),["MeanAirTemperature","MeanRadiantTemperature","OperativeTemperature","OutdoorDryBulbTemperature","OutdoorWetBulbTemperature","SurfaceTemperature","ZoneAirDewPointTemperature",]))
        self.InsertField(FieldObjectlist(self,"Heating High Air Temperature Schedule Name","",("Air and control temperatures for heating work together to provide","a linear function that determines the air temperature sent to the","radiant system. The current control temperature (see A14) is","compared to the high and low control temperatures at the current time.","If the control temperature is above the high temperature, then the","inlet air temperature is set to the low air temperature. If the","control temperature is below the low temperature, then the inlet","air temperature is set to the high air temperature. If the control","temperature is between the high and low value, then the inlet air","temperature is linearly interpolated between the low and high air","temperature values.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating Low Air Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating High Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Heating Low Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling High Air Temperature Schedule Name","",("See note for heating high air temperature schedule above for","interpretation information (or see the Input/Output Reference).","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Low Air Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling High Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cooling Low Control Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Return Air Node Name","",""))
        self.InsertField(FieldText(self,"Slab In Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Supply Air Node Name","",("Leave blank when the system configuration is Slab Only","",),"NodeNames"))
        self.InsertField(FieldText(self,"Outdoor Air Node Name","",""))
        self.InsertField(FieldText(self,"Relief Air Node Name","",""))
        self.InsertField(FieldText(self,"Outdoor Air Mixer Outlet Node Name","",("node is inlet to coils","",)))
        self.InsertField(FieldText(self,"Fan Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Allowable fan type is Fan:ConstantVolume","",),"FansCV"))
        self.InsertField(FieldChoice(self,"Coil Option Type","","",["None","Heating","Cooling","HeatingAndCooling",]))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:Water","Coil:Cooling:Water:DetailedGeometry","CoilSystem:Cooling:Water:HeatExchangerAssisted",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsWater"))
        self.InsertField(FieldText(self,"Cold Water Inlet Node Name","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Radiative/Convective Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:VentilatedSlab")





class ZoneHVAC_VentilatedSlab_SlabGroup(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone 1 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 1",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 1",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 1",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 1","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 1","",""))
        self.InsertField(FieldObjectlist(self,"Zone 2 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 2 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 2",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 2",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 2",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 2","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 2","",""))
        self.InsertField(FieldObjectlist(self,"Zone 3 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 3 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 3",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 3",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 3",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 3","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 3","",""))
        self.InsertField(FieldObjectlist(self,"Zone 4 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 4 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 4",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 4",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 4",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 4","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 4","",""))
        self.InsertField(FieldObjectlist(self,"Zone 5 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 5 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 5",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 5",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 5",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab In Node Name for Surface 5","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 5","",""))
        self.InsertField(FieldObjectlist(self,"Zone 6 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 6 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 6",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 6",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 6",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 6","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 6","",""))
        self.InsertField(FieldObjectlist(self,"Zone 7 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 7 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 7",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 7",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 7",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 7","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 7","",""))
        self.InsertField(FieldObjectlist(self,"Zone 8 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 8 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 8",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 8",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 8",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 8","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 8","",""))
        self.InsertField(FieldObjectlist(self,"Zone 9 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 9 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 9",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 9",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 9",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 9","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 9","",""))
        self.InsertField(FieldObjectlist(self,"Zone 10 Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Surface 10 Name","","","SurfaceNames"))
        self.InsertField(FieldReal(self,"Core Diameter for Surface 10",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Length for Surface 10",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Core Numbers for Surface 10",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Slab Inlet Node Name for Surface 10","",""))
        self.InsertField(FieldText(self,"Slab Outlet Node Name for Surface 10","",""))


        self.insertMemo(("This is used to allow the coordinate control of several radiant system surfaces.","Note that the following flow fractions must sum up to 1.0","The number of surfaces can be expanded beyond 10, if necessary, by adding more","groups to the end of the list",))
        self.addReference("RadGroupAndSurfNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(2)
        self.setClassnameIDD("ZoneHVAC:VentilatedSlab:SlabGroup")





class AirTerminal_SingleDuct_Uncontrolled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Zone Supply Air Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"",0.0,"","",""))


        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:Uncontrolled")





class AirTerminal_SingleDuct_ConstantVolume_Reheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when reheat coil type is gas or electric","",)))
        self.InsertField(FieldChoice(self,"Reheat Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water or Steam Flow Rate",0,("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water or Steam Flow Rate","0.0",("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:ConstantVolume:Reheat")





class AirTerminal_SingleDuct_VAV_NoReheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Zone Minimum Air Flow Fraction",0,("fraction of maximum air flow","",),"","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:VAV:NoReheat")





class AirTerminal_SingleDuct_VAV_Reheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Damper Air Outlet Node Name","",("the outlet node of the damper and the inlet node of the reheat coil","this is an internal node to the terminal unit and connects the damper and reheat coil","",)))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("the inlet node to the terminal unit and the damper","",)))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Zone Minimum Air Flow Input Method","","",["Constant","Scheduled",]))
        self.InsertField(FieldReal(self,"Constant Minimum Air Flow Fraction",0,("This field is used if the field Zone Minimum Air Flow Input Method is Constant","If the field Zone Minimum Air Flow Input Method is Scheduled, then this field","is optional; if a value is entered, then it is used for sizing normal-action reheat coils.","",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Minimum Air Flow Fraction Schedule Name","",("This field is used if the field Zone Minimum Air Flow Input Method is Scheduled","Schedule values are fractions, 0.0 to 1.0.","If the field Constant Minimum Air Flow Fraction is blank, then the average of the","minimum and maximum schedule values is used for sizing normal-action reheat coils.","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when reheat coil type is gas or electric","",)))
        self.InsertField(FieldChoice(self,"Reheat Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water or Steam Flow Rate",0,("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water or Steam Flow Rate","0.0",("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("the outlet node of the terminal unit and the reheat coil","",)))
        self.InsertField(FieldReal(self,"Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Damper Heating Action","Normal","",["Normal","Reverse",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:VAV:Reheat")





class AirTerminal_SingleDuct_VAV_Reheat_VariableSpeedFan(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Cooling Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Heating Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Zone Minimum Air Flow Fraction",0,("fraction of cooling air flow rate","",),"","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("same as fan inlet node","",)))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("same as heating coil air outlet node","same as zone inlet node","",)))
        self.InsertField(FieldText(self,"Heating Coil Air Inlet Node Name","",("same as fan outlet node","",)))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when heating coil type is gas or electric","",)))
        self.InsertField(FieldChoice(self,"Fan Object Type","","",["Fan:VariableVolume",]))
        self.InsertField(FieldObjectlist(self,"Fan Name","","","FansVAV"))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water or Steam Flow Rate",0,("Not used when heating coil type is gas or electric","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water or Steam Flow Rate","0.0",("Not used when heating coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Heating Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:VAV:Reheat:VariableSpeedFan")





class AirTerminal_SingleDuct_VAV_HeatAndCool_NoReheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Zone Minimum Air Flow Fraction",0,("fraction of maximum air flow","",),0.0,1.0,"",""))


        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:VAV:HeatAndCool:NoReheat")





class AirTerminal_SingleDuct_VAV_HeatAndCool_Reheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Damper Air Outlet Node Name","",("the outlet node of the damper and the inlet node of the reheat coil","this is an internal node to the terminal unit and connects the damper and reheat coil","",)))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("the inlet node to the terminal unit and the damper","",)))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Zone Minimum Air Flow Fraction",0,("fraction of maximum air flow","",),0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when reheat coil type is gas or electric","",)))
        self.InsertField(FieldChoice(self,"Reheat Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water or Steam Flow Rate",0,("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water or Steam Flow Rate","0.0",("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("the outlet node of the terminal unit and the reheat coil","",)))
        self.InsertField(FieldReal(self,"Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:VAV:HeatAndCool:Reheat")





class AirTerminal_SingleDuct_SeriesPIU_Reheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Primary Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Primary Air Flow Fraction",0,"","","","",""))
        self.InsertField(FieldText(self,"Supply Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Reheat Coil Air Inlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Mixer Name","","","ZoneMixers"))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Fan type must be Fan:ConstantVolume","",),"FansCV"))
        self.InsertField(FieldChoice(self,"Reheat Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water or Steam Flow Rate",0,("Not used when reheat coil type is gas or electric","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water or Steam Flow Rate","0.0",("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when reheat coil type is gas or electric","",)))
        self.InsertField(FieldReal(self,"Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:SeriesPIU:Reheat")





class AirTerminal_SingleDuct_ParallelPIU_Reheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Primary Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Secondary Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Primary Air Flow Fraction",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Fan On Flow Fraction",0,("the fraction of the primary air flow at which fan turns on","",),"","","",""))
        self.InsertField(FieldText(self,"Supply Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Reheat Coil Air Inlet Node Name","",("mixer outlet node","",)))
        self.InsertField(FieldObjectlist(self,"Zone Mixer Name","","","ZoneMixers"))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Fan type must be Fan:ConstantVolume","",),"FansCV"))
        self.InsertField(FieldChoice(self,"Reheat Coil Object Type","","",["Coil:Heating:Water","Coil:Heating:Electric","Coil:Heating:Gas","Coil:Heating:Steam",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water or Steam Flow Rate",0,("Not used when reheat coil type is gas or electric","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water or Steam Flow Rate","0.0",("Not used when reheat coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Hot Water or Steam Inlet Node Name","",("Not used when reheat coil type is gas or electric","",)))
        self.InsertField(FieldReal(self,"Convergence Tolerance","0.001","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:ParallelPIU:Reheat")





class AirTerminal_SingleDuct_ConstantVolume_FourPipeInduction(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Total Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Induction Ratio","1.0",("ratio of induced air flow rate to primary air flow rate","",),0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Supply Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Induced Air Inlet Node Name","",("should be a zone exhaust node, also the heating coil inlet node","",)))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("should be a zone inlet node","",)))
        self.InsertField(FieldText(self,"Hot Water Inlet Node Name","",("Not used when heating coil type is gas or electric","",)))
        self.InsertField(FieldText(self,"Cold Water Inlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","","",["Coil:Heating:Water",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Hot Water Flow Rate",0,("Not used when heating coil type is gas or electric","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Hot Water Flow Rate","0.0",("Not used when heating coil type is gas or electric","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Heating Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:Water","Coil:Cooling:Water:DetailedGeometry",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilName"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Cold Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Cold Water Flow Rate","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Cooling Convergence Tolerance","0.001","","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Zone Mixer Name","","","ZoneMixers"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction")





class AirTerminal_SingleDuct_ConstantVolume_CooledBeam(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Cooled Beam Type","","",["Active","Passive",]))
        self.InsertField(FieldText(self,"Supply Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Supply Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Volumetric Flow Rate","autosize","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Total Chilled Water Volumetric Flow Rate","autosize","",0.0,"","",""))
        self.InsertField(FieldInt(self,"Number of Beams","autosize",("Number of individual beam units in the zone","",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Beam Length","autosize",("Length of an individual beam unit","Units: m",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Design Inlet Water Temperature","15.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Outlet Water Temperature","17.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Coil Surface Area per Coil Length","5.422","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Model Parameter a","15.3","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Model Parameter n1","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Model Paramter n2","0.84","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Model Paramter n3","0.12","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Model Parameter a0","0.171",("Free area of the coil in plan view per unit beam length","Units: m2/m",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Model Parameter K1","0.0057","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Model Parameter n","0.4","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coefficient of Induction Kin","Autocalculate","",0.0,4.0,"",""))
        self.InsertField(FieldReal(self,"Leaving Pipe Inside Diameter","0.0145","","","",0.0,""))


        self.setRequired(False)
        self.setMinfields(23)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:SingleDuct:ConstantVolume:CooledBeam")





class AirTerminal_DualDuct_ConstantVolume(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Hot Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Cold Air Inlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Air Flow Rate",0,"",0.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:DualDuct:ConstantVolume")





class AirTerminal_DualDuct_VAV(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Hot Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Cold Air Inlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Damper Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Zone Minimum Air Flow Fraction","0.2",("fraction of maximum air flow","",),0.0,1.0,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Air Loop Terminal Units") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirTerminal:DualDuct:VAV")





class ZoneHVAC_AirDistributionUnit(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Air Distribution Unit Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Air Terminal Object Type","","",["AirTerminal:DualDuct:ConstantVolume","AirTerminal:DualDuct:VAV","AirTerminal:SingleDuct:ConstantVolume:Reheat","AirTerminal:SingleDuct:VAV:Reheat","AirTerminal:SingleDuct:VAV:NoReheat","AirTerminal:SingleDuct:SeriesPIU:Reheat","AirTerminal:SingleDuct:ParallelPIU:Reheat","AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction","AirTerminal:SingleDuct:VAV:Reheat:VariableSpeedFan","AirTerminal:SingleDuct:VAV:HeatAndCool:Reheat","AirTerminal:SingleDuct:VAV:HeatAndCool:NoReheat",]))
        self.InsertField(FieldText(self,"Air Terminal Name","",""))
        self.InsertField(FieldReal(self,"Nominal Upstream Leakage Fraction","0",("fraction at system design Flow; leakage Flow constant, leakage fraction","varies with variable system Flow Rate.","",),0,0.3,"",""))
        self.InsertField(FieldReal(self,"Constant Downstream Leakage Fraction","0","",0,0.3,"",""))


        self.insertMemo(("A typical set of components for an air distribution unit will","consist of a single component Air Distribution Unit (ADU)",))
        self.addReference("AirDistributionUnits")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Zone HVAC Equipment Connections") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:AirDistributionUnit")





class ZoneHVAC_EquipmentList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Zone Equipment 1 Object Type","","",["ZoneHVAC:AirDistributionUnit","AirTerminal:SingleDuct:Uncontrolled","ZoneHVAC:WindowAirConditioner","ZoneHVAC:PackagedTerminalHeatPump","ZoneHVAC:PackagedTerminalAirConditioner","ZoneHVAC:FourPipeFanCoil","ZoneHVAC:UnitVentilator","ZoneHVAC:UnitHeater","ZoneHVAC:IdealLoadsAirSystem","ZoneHVAC:Baseboard:RadiantConvective:Water","ZoneHVAC:Baseboard:Convective:Water","ZoneHVAC:Baseboard:Convective:Electric","ZoneHVAC:HighTemperatureRadiant","ZoneHVAC:LowTemperatureRadiant:VariableFlow","ZoneHVAC:LowTemperatureRadiant:ConstantFlow","ZoneHVAC:LowTemperatureRadiant:Electric","ZoneHVAC:VentilatedSlab","Fan:ZoneExhaust","ZoneHVAC:EnergyRecoveryVentilator","WaterHeater:HeatPump",]))
        self.InsertField(FieldText(self,"Zone Equipment 1 Name","",""))
        self.InsertField(FieldInt(self,"Zone Equipment 1 Cooling Priority",0,("1=highest, 2=next, etc","",),1,"","",""))
        self.InsertField(FieldInt(self,"Zone Equipment 1 Heating Priority",0,("1=highest, 2=next, etc","",),1,"","",""))


        self.insertMemo(("List equipment in simulation order.  Note that an ZoneHVAC:AirDistributionUnit or","AirTerminal:SingleDuct:Uncontrolled object must be listed in this statement if there is a forced","air system serving the zone from the air loop.",))
        self.addReference("ZoneEquipmentLists")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Zone HVAC Equipment Connections") 
        self.setExtensible(4)
        self.setClassnameIDD("ZoneHVAC:EquipmentList")





class ZoneHVAC_EquipmentConnections(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Zone Conditioning Equipment List Name","",("Enter the name of a ZoneHVAC:EquipmentList object.","",)))
        self.InsertField(FieldText(self,"Zone Air Inlet Node or NodeList Name","",""))
        self.InsertField(FieldText(self,"Zone Air Exhaust Node or NodeList Name","",""))
        self.InsertField(FieldText(self,"Zone Air Node Name","",""))
        self.InsertField(FieldText(self,"Zone Return Air Node Name","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fans") 
        self.setExtensible(-1)
        self.setClassnameIDD("ZoneHVAC:EquipmentConnections")





class Fan_ConstantVolume(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Pressure Rise",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Motor In Airstream Fraction",0,("0.0 means fan motor outside of air stream, 1.0 means motor inside of air stream","",),0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.addReference("Fans")
        self.addReference("FansCV")
        self.addReference("FansCVandOnOff")
        self.addReference("FansCVandVAV")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fans") 
        self.setExtensible(-1)
        self.setClassnameIDD("Fan:ConstantVolume")





class Fan_VariableVolume(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Pressure Rise",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Motor In Airstream Fraction",0,("0.0 means fan motor outside of air stream, 1.0 means motor inside of air stream","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fan Coefficient 1",0,("all FanCoefficients should not be 0.0 or no fan power will be consumed.","",),"","","",""))
        self.InsertField(FieldReal(self,"Fan Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fan Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fan Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fan Coefficient 5",0,"","","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.addReference("Fans")
        self.addReference("FansVAV")
        self.addReference("FansCVandVAV")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fans") 
        self.setExtensible(-1)
        self.setClassnameIDD("Fan:VariableVolume")





class Fan_OnOff(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Pressure Rise",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Motor In Airstream Fraction",0,("0.0 means fan motor outside of air stream, 1.0 means motor inside of air stream","",),0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fan Power Ratio Function of Speed Ratio Curve Name","","","ExponentCurves"))
        self.InsertField(FieldObjectlist(self,"Fan Efficiency Ratio Function of Speed Ratio Curve Name","","","QuadraticCubicCurves"))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.addReference("Fans")
        self.addReference("FansCVandOnOff")
        self.addReference("FansOnOff")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fans") 
        self.setExtensible(-1)
        self.setClassnameIDD("Fan:OnOff")





class Fan_ZoneExhaust(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Pressure Rise",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fans") 
        self.setExtensible(-1)
        self.setClassnameIDD("Fan:ZoneExhaust")





class FanPerformance_NightVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Fan Name","","","FansCVandVAV"))
        self.InsertField(FieldReal(self,"Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Pressure Rise",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Motor in Airstream Fraction",0,("0.0 means fan motor outside of airstream","1.0 means fan motor inside of airstream","",),0.0,1.0,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("FanPerformance:NightVentilation")





class Coil_Cooling_Water(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Inlet Water Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Inlet Air Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Outlet Air Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Inlet Air Humidity Ratio",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Outlet Air Humidity Ratio",0,"","","","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Type of Analysis","SimpleAnalysis","",["SimpleAnalysis","DetailedAnalysis",]))
        self.InsertField(FieldChoice(self,"Heat Exchanger Configuration","CrossFlow","",["CrossFlow","CounterFlow",]))
        self.InsertField(FieldObjectlist(self,"Condensate Collection Water Storage Tank Name","","","WaterStorageTankNames"))


        self.addReference("CoolingCoilName")
        self.addReference("CoolingCoilsWater")
        self.addReference("CoolingCoilsWaterNoHX")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:Water")





class Coil_Cooling_Water_DetailedGeometry(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Tube Outside Surface Area",0,("Tube Primary Surface Area","Units: m2",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Total Tube Inside Area",0,("Total tube inside surface area","Units: m2",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Fin Surface Area",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Airflow Area",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Coil Depth",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Fin Diameter",0,("Fin diameter or the coil height","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Fin Thickness",".0015","","","","",""))
        self.InsertField(FieldReal(self,"Tube Inside Diameter",".01445",("Inner diameter of tubes","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Tube Outside Diameter",".0159",("Outer diameter of tubes","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Tube Thermal Conductivity","0.386","","","","",""))
        self.InsertField(FieldReal(self,"Fin Thermal Conductivity","0.204","","","","",""))
        self.InsertField(FieldReal(self,"Fin Spacing",".0018",("Fin spacing or distance","Units: m",),"","","",""))
        self.InsertField(FieldReal(self,"Tube Depth Spacing",".026","","","","",""))
        self.InsertField(FieldReal(self,"Number of Tube Rows","4","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Number of Tubes per Row",0,"","","","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Condensate Collection Water Storage Tank Name","","","WaterStorageTankNames"))


        self.addReference("CoolingCoilName")
        self.addReference("CoolingCoilsWater")
        self.addReference("CoolingCoilsWaterNoHX")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:Water:DetailedGeometry")





class Coil_Cooling_DX_SingleSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Rated Total Cooling Capacity",0,("gross capacity excluding supply air fan heat","rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Rated COP","3.0",("does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Air Flow Rate",0,("Flow rate corresponding to rated total cooling capacity, Rated SHR and Rated COP","should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total cooling capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Total Cooling Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = Fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = Fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (cooling load/steady-state capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldChoice(self,"Supply Air Fan Operating Mode","","",["CyclingFanAndCompressor","ContinuousFanWithCyclingCompressor",]))
        self.InsertField(FieldReal(self,"Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow rate and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity","0.0",("Ratio of the initial moisture evaporation rate from the cooling coil (when","the compressor first turns off) and the coil's steady-state latent capacity","at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Cycling Rate","0.0",("The maximum on-off cycling Rate for the compressor, which occurs at 50% run time","fraction. Suggested value is 3; zero value means latent degradation model is disabled.","Units: cycles/hr",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Latent Capacity Time Constant","0.0",("Time constant for the cooling coil's latent capacity to reach steady state after","startup. Suggested value is 45; zero value means latent degradation model is disabled.","Units: s",),0.0,500.0,"",""))
        self.InsertField(FieldText(self,"Condenser Air Inlet Node Name","",("Enter the name of an outdoor air node. This node name is also specified in","an OutdoorAir:Node or OutdoorAir:NodeList object.","",)))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","EvaporativelyCooled",]))
        self.InsertField(FieldReal(self,"Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Evaporative Condenser Pump Rated Power Consumption","0.0",("Rated power consumed by the evaporative condenser's water pump","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Crankcase Heater Capacity","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation","10.0","",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldObjectlist(self,"Condensate Collection Water Storage Tank Name","","","WaterStorageTankNames"))


        self.addReference("CoolingCoilsDX")
        self.addReference("CoolingCoilsDXSingleSpeed")
        self.addReference("CoolingCoilsDXBypassFactorEmpirical")
        self.addReference("DesuperHeatingCoilSources")
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:DX:SingleSpeed")





class Coil_Cooling_DX_TwoSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Rated High Speed Total Cooling Capacity",0,("gross capacity excluding supply air fan heat","rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated High Speed Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Rated High Speed COP","3.0",("does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated High Speed Air Flow Rate",0,("Flow rate corresponding to rated total cooling capacity, Rated SHR","and Rated COP. Should be between 0.00004027 m3/s and .00006041 m3/s per watt","of rated total cooling capacity.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Total Cooling Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (cooling load/steady-state capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldChoice(self,"Supply Air Fan Operating Mode","VariableSpeedFanAndCompressor",("This field is not used","",),["CyclingFanAndCompressor","ContinuousFanWithCyclingCompressor","VariableSpeedFanAndCompressor","VariableSpeedFanWithCompressorUnloading",]))
        self.InsertField(FieldRealAutocalculate(self,"Rated Low Speed Total Cooling Capacity",0,("gross capacity excluding supply air fan heat","rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Low Speed Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Rated Low Speed COP","3.0",("does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Low Speed Air Flow Rate",0,("Flow rate corresponding to rated total cooling capacity, Rated SHR","and Rated COP. Should be between 0.00004027 m3/s and .00006041 m3/s per watt","of rated total cooling capacity.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Low Speed Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Low Speed Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldText(self,"Condenser Air Inlet Node Name","",("Enter the name of an outdoor air node. This node name is also specified in","an OutdoorAir:Node or OutdoorAir:NodeList object.","",)))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","EvaporativelyCooled",]))
        self.InsertField(FieldReal(self,"High Speed Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"High Speed Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"High Speed Evaporative Condenser Pump Rated Power Consumption",0,("Rated power consumed by the evaporative condenser's water pump at high speed","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Low Speed Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Low Speed Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Low Speed Evaporative Condenser Pump Rated Power Consumption",0,("Rated power consumed by the evaporative condenser's water pump at low speed","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldObjectlist(self,"Condensate Collection Water Storage Tank Name","","","WaterStorageTankName"))


        self.addReference("CoolingCoilsDX")
        self.addReference("CoolingCoilsDXMultiSpeed")
        self.addReference("DesuperHeatingCoilSources")
        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:DX:TwoSpeed")





class Coil_Cooling_DX_MultiSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Supply Air Fan Operating Mode","","",["CyclingFanAndCompressor","ContinuousFanWithCyclingCompressor",]))
        self.InsertField(FieldText(self,"Condenser Air Inlet Node Name","",("Enter the name of an outdoor air node. This node name is also specified in","an OutdoorAir:Node or OutdoorAir:NodeList object.","",)))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","EvaporativelyCooled",]))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldObjectlist(self,"Condensate Collection Water Storage Tank Name","","","WaterStorageTankName"))
        self.InsertField(FieldYesNo(self,"Apply Part Load Fraction to Speeds Greater than 1","No","",["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Apply Latent Degradation to Speeds Greater than 1","No","",["Yes","No",]))
        self.InsertField(FieldReal(self,"Crankcase Heater Capacity","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation","10.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","NaturalGas","",["Electricity","NaturalGas","PropaneGas","Diesel","Gasoline","FuelOil#1","FuelOil#2",]))
        self.InsertField(FieldInt(self,"Number of Speeds",0,("Enter the number of the following sets of data for coil capacity, SHR, COP,","flow rate, and associated curves.","",),2,4,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Rated Total Cooling Capacity",0,("Gross capacity excluding supply air fan heat","Rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Speed 1 is defined as low speed","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Rated Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","Sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Speed 1 Rated COP","3.0",("Does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Rated Air Flow Rate",0,("Flow rate corresponding to rated total cooling capacity, rated SHR and rated","COP should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","cooling capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 1 Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Total Cooling Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = Fraction of the full load Flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (cooling load/steady-state capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 1 Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow rate and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Speed 1 Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity","0.0",("Ratio of the initial moisture evaporation Rate from the Cooling Coil (when","the compressor first turns off) and the Coil's steady-state latent capacity","at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 1 Maximum Cycling Rate","0.0",("The maximum on-off cycling rate for the compressor, which occurs at 50% run time","fraction. Suggested value is 3; zero value means latent degradation","model is disabled.","Units: cycles/hr",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 1 Latent Capacity Time Constant","0.0",("Time constant for the cooling coil's latent capacity to reach steady state after","startup. Suggested value is 45; zero value means latent degradation","model is disabled.","Units: s",),0.0,500.0,"",""))
        self.InsertField(FieldReal(self,"Speed 1 Rated Waste Heat Fraction of Power Input",0,("Recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 1 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))
        self.InsertField(FieldReal(self,"Speed 1 Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Rated Evaporative Condenser Pump Power Consumption",0,("Rated power consumed by the evaporative condenser's water pump at high speed","Units: W",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Rated Total Cooling Capacity",0,("Gross capacity excluding supply air fan heat","Rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Rated Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","Sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Speed 2 Rated COP","3.0",("Does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Rated Air Flow Rate",0,("Flow rate corresponding to rated total cooling capacity, rated SHR and rated","COP should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","cooling capacity for Speed 2.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 2 Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Total Cooling Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = Fraction of the full load Flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (Cooling load/steady-state capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 2 Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow rate and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Speed 2 Ratio of Initial Moisture Evaporation Rate and Steady-state Latent Capacity","0.0",("Ratio of the initial moisture evaporation rate from the cooling coil (when","the compressor first turns off) and the coil's steady-state latent capacity","at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 2 Maximum Cycling Rate","0.0",("The maximum on-off cycling rate for the compressor, which occurs at 50% run time","fraction. Suggested value is 3; zero value means latent degradation","model is disabled.","Units: cycles/hr",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 2 Latent Capacity Time Constant","0.0",("Time constant for the cooling coil's latent capacity to reach steady state after","startup. Suggested value is 45; zero value means latent degradation","model is disabled.","Units: s",),0.0,500.0,"",""))
        self.InsertField(FieldReal(self,"Speed 2 Rated Waste Heat Fraction of Power Input",0,("Recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 2 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))
        self.InsertField(FieldReal(self,"Speed 2 Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Rated Evaporative Condenser Pump Power Consumption",0,("Rated power consumed by the evaporative condenser's water pump at low speed","Units: W",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Rated Total Cooling Capacity",0,("Gross capacity excluding supply air fan heat","Rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Rated Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","Sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Speed 3 Rated COP","3.0",("does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Rated Air Flow Rate",0,("Flow rate corresponding to rated total cooling capacity, rated SHR and rated","COP should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","cooling capacity for Speed 3.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 3 Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Total Cooling Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (Cooling load/steady-state capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 3 Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow rate and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Speed 3 Ratio of Initial Moisture Evaporation Rate and Steady-state Latent Capacity","0.0",("Ratio of the initial moisture evaporation rate from the cooling coil (when","the compressor first turns off) and the coil's steady-state latent capacity","at rated air flow and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 3 Maximum Cycling Rate","0.0",("The maximum on-off cycling rate for the compressor, which occurs at 50% run time","fraction. Suggested value is 3; zero value means latent degradation","model is disabled.","Units: cycles/hr",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 3 Latent Capacity Time Constant","0.0",("Time constant for the cooling coil's latent capacity to reach steady state after","startup. Suggested value is 45; zero value means latent degradation","model is disabled.","Units: s",),0.0,500.0,"",""))
        self.InsertField(FieldReal(self,"Speed 3 Rated Waste Heat Fraction of Power Input",0,("Recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 3 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))
        self.InsertField(FieldReal(self,"Speed 3 Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Rated Evaporative Condenser Pump Power Consumption",0,("Rated power consumed by the evaporative condenser's water pump at Low speed","Units: W",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Rated Total Cooling Capacity",0,("Gross capacity excluding supply air fan heat","Rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Rated Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","Sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Speed 4 Rated COP","3.0",("Does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Rated Air Flow Rate",0,("Flow rate corresponding to rated total cooling capacity, rated SHR and rated","COP should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","cooling capacity for Speed 4","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 4 Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Total Cooling Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (cooling load/steady-state capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 4 Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow rate and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Speed 4 Ratio of Initial Moisture Evaporation Rate and Steady-state Latent Capacity","0.0",("Ratio of the initial moisture evaporation rate from the cooling coil (when","the compressor first turns off) and the coil's steady-state latent capacity","at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 4 Maximum Cycling Rate","0.0",("The maximum on-off cycling rate for the compressor, which occurs at 50% run time","fraction. Suggested value is 3; zero value means latent degradation","model is disabled.","Units: cycles/hr",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Speed 4 Latent Capacity Time Constant","0.0",("Time constant for the cooling coil's latent capacity to reach steady state after","startup. Suggested value is 45; zero value means latent degradation","model is disabled.","Units: s",),0.0,500.0,"",""))
        self.InsertField(FieldReal(self,"Speed 4 Rated Waste Heat Fraction of Power Input",0,("Recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 4 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))
        self.InsertField(FieldReal(self,"Speed 4 Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Rated Evaporative Condenser Pump Power Consumption",0,("Rated power consumed by the evaporative condenser's water pump at Speed 4","Units: W",),0.0,"","",""))


        self.addReference("CoolingCoilsDX")
        self.setRequired(False)
        self.setMinfields(51)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:DX:MultiSpeed")





class Coil_Cooling_DX_TwoStageWithHumidityControlMode(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Crankcase Heater Capacity","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation","10.0","",0.0,"","",""))
        self.InsertField(FieldInt(self,"Number of Capacity Stages","1","",1,2,"",""))
        self.InsertField(FieldInt(self,"Number of Enhanced Dehumidification Modes","0","",0,1,"",""))
        self.InsertField(FieldChoice(self,"Normal Mode Stage 1 Coil Performance Object Type","","",["CoilPerformance:DX:Cooling",]))
        self.InsertField(FieldObjectlist(self,"Normal Mode Stage 1 Coil Performance Name","","","CoilPerformanceDX"))
        self.InsertField(FieldChoice(self,"Normal Mode Stage 1+2 Coil Performance Object Type","","",["CoilPerformance:DX:Cooling",]))
        self.InsertField(FieldObjectlist(self,"Normal Mode Stage 1+2 Coil Performance Name","","","CoilPerformanceDX"))
        self.InsertField(FieldChoice(self,"Dehumidification Mode 1 Stage 1 Coil Performance Object Type","","",["CoilPerformance:DX:Cooling",]))
        self.InsertField(FieldObjectlist(self,"Dehumidification Mode 1 Stage 1 Coil Performance Name","","","CoilPerformanceDX"))
        self.InsertField(FieldChoice(self,"Dehumidification Mode 1 Stage 1+2 Coil Performance Object Type","","",["CoilPerformance:DX:Cooling",]))
        self.InsertField(FieldObjectlist(self,"Dehumidification Mode 1 Stage 1+2 Coil Performance Name","","","CoilPerformanceDX"))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldObjectlist(self,"Condensate Collection Water Storage Tank Name","","","WaterStorageTankNames"))


        self.insertMemo(("This coil object models a DX coil which has multiple modes of operation.","For example, a coil with optional sub-cool or hot gas reheat which","is switched on or off depending on dehumidification requirements.","The meaning of each mode is defined by the controlling object.",))
        self.addReference("CoolingCoilsDX")
        self.addReference("CoolingCoilsDXMultiMode")
        self.addReference("DesuperHeatingCoilSources")
        self.setRequired(False)
        self.setMinfields(10)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:DX:TwoStageWithHumidityControlMode")





class CoilPerformance_DX_Cooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Total Cooling Capacity",0,("gross capacity excluding supply air fan heat","rating point: air entering the cooling coil at 26.7 C dry-bulb/19.4 C wet-bulb, and","air entering the outdoor condenser coil at 35 C dry-bulb/23.9 C wet-bulb","Units: W",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Sensible Heat Ratio",0,("Rated sensible heat ratio (gross sensible capacity/gross total capacity)","sensible and total capacities do not include supply fan heat","",),0.5,1.0,"",""))
        self.InsertField(FieldReal(self,"Rated COP","3.0",("does not include supply fan heat or supply fan electrical energy input","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Air Flow Rate",0,("Flow rate corresponding to Rated total Cooling capacity, Rated SHR and Rated COP","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Fraction of Air Flow Bypassed Around Coil","0.0",("Fraction of Rated Air Flow Rate which bypasses the cooling coil","in this performance mode.  The remaining portion of the flow","should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total cooling capacity.","This is used to model face-split coils on multi-stage units or bypass dampers.","If total flow rate varies during simulation, the same fraction is bypassed.","",),0.0,"","",1.0))
        self.InsertField(FieldObjectlist(self,"Total Cooling Capacity Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Total Cooling Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Temperature Curve Name","",("curve = a + b*wb + c*wb**2 + d*edb + e*edb**2 + f*wb*edb","wb = entering wet-bulb temperature (C)","edb = dry-bulb temperature seen by the condenser (C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (cooling load/steady-state capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldChoice(self,"Supply Air Fan Operating Mode","","",["CyclingFanAndCompressor","ContinuousFanWithCyclingCompressor",]))
        self.InsertField(FieldReal(self,"Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow rate and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity","0.0",("Ratio of the initial moisture evaporation rate from the cooling coil (when","the compressor first turns off) and the coil's steady-state latent capacity","at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Cycling Rate","0.0",("The maximum on-off cycling rate for the compressor, which occurs at 50% run time","fraction. Suggested value is 3; zero value means latent degradation model is disabled.","Units: cycles/hr",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Latent Capacity Time Constant","0.0",("Time constant for the cooling coil's latent capacity to reach steady state after","startup. Suggested value is 45; zero value means latent degradation model is disabled.","Units: s",),0.0,500.0,"",""))
        self.InsertField(FieldText(self,"Condenser Air Inlet Node Name","",("Enter the name of an outdoor air node. This node name is also specified in","an OutdoorAir:Node or OutdoorAir:NodeList object.","",)))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","EvaporativelyCooled",]))
        self.InsertField(FieldReal(self,"Evaporative Condenser Effectiveness","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Evaporative Condenser Air Flow Rate",0,("Used to calculate evaporative condenser water use","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Evaporative Condenser Pump Rated Power Consumption","0.0",("Rated power consumed by the evaporative condenser's water pump","Units: W",),0.0,"","",""))


        self.addReference("CoilPerformanceDX")
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoilPerformance:DX:Cooling")





class Coil_Heating_Water(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"U-Factor Times Area Value","Autosize","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Water Flow Rate","Autosize","","","","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Performance Input Method","UFactorTimesAreaAndDesignWaterFlowRate","",["UFactorTimesAreaAndDesignWaterFlowRate","NominalCapacity",]))
        self.InsertField(FieldRealAutocalculate(self,"Rated Capacity","Autosize","",0,"","",""))
        self.InsertField(FieldReal(self,"Rated Inlet Water Temperature","82.2","","","","",""))
        self.InsertField(FieldReal(self,"Rated Inlet Air Temperature","16.6","","","","",""))
        self.InsertField(FieldReal(self,"Rated Outlet Water Temperature","71.1","","","","",""))
        self.InsertField(FieldReal(self,"Rated Outlet Air Temperature","32.2","","","","",""))


        self.addReference("HeatingCoilName")
        self.addReference("HeatingCoilsWater")
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:Water")





class Coil_Heating_Steam(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Steam Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Degree of SubCooling",0,"",1.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Degree of Loop SubCooling","20.0","",10.0,"","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Coil Control Type","","",["TemperatureSetpointControl","ZoneLoadControl",]))
        self.InsertField(FieldText(self,"Temperature Setpoint Node Name","",("only if coil is TemperatureSetpointControl","",)))


        self.addReference("HeatingCoilName")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:Steam")





class Coil_Heating_Electric(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Efficiency","1.0","","",1.0,0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"","","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Temperature Setpoint Node Name","",(" needed if coil is temperature controlled and not load-base controlled","",)))


        self.addReference("HeatingCoilName")
        self.addReference("HeatingCoilsGasElec")
        self.addReference("HeatingCoilsGasElecDesup")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:Electric")





class Coil_Heating_Gas(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Gas Burner Efficiency","0.8","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"","","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Temperature Setpoint Node Name","",("optional, used if coil is temperature control and not load-base controlled","",)))
        self.InsertField(FieldReal(self,"Parasitic Electric Load",0,("parasitic electric load associated with the gas coil operation","such as an inducer fan, etc..  This will be modified by the part load ratio to reflect","the time of operation in a timestep.","Units: W",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Part Load Fraction Correlation Curve Name","",("quadratic curve, PLF = a + b*PLR + c*PLR**2","cubic curve, PLF = a + b*PLR + c*PLR**2 + d*PLR**3","PLF = part load fraction","PLR = part load ratio (sensible heating load/steady-state heating capacity)","Coil runtime fraction = Part Load Ratio / PLF","This part load degradation is for coil performance & will","increase the gas consumption of the coil due to transient coil operation.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Parasitic Gas Load",0,("parasitic gas load associated with the gas coil operation (i.e., standing pilot)","Units: W",),"","","",""))


        self.addReference("HeatingCoilName")
        self.addReference("HeatingCoilsGasElec")
        self.addReference("HeatingCoilsGasElecDesup")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:Gas")





class Coil_Heating_Desuperheater(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Heat Reclaim Recovery Efficiency","0.25","",0.0,0.3,"",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Heating Source Object Type","","",["Coil:Cooling:DX:SingleSpeed","Coil:Cooling:DX:TwoSpeed","Coil:Cooling:DX:TwoStageWithHumidityControlMode","Refrigeration:CompressorRack","Refrigeration:Condenser",]))
        self.InsertField(FieldObjectlist(self,"Heating Source Name","","","DesuperHeatingCoilSources"))
        self.InsertField(FieldText(self,"Temperature Setpoint Node Name","",("optionally used if coil is controlled based on a setpoint temperature","Temperature-based control requires the use of a Setpoint object","",)))
        self.InsertField(FieldReal(self,"Parasitic Electric Load",0,("parasitic electric load associated with the desuperheater coil operation","such as solenoid valves, etc.","Units: W",),0,"","",""))


        self.addReference("HeatingCoilsGasElecDesup")
        self.addReference("HeatingCoilsDesuperheater")
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:Desuperheater")





class Coil_Heating_DX_SingleSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Rated Total Heating Capacity",0,("capacity excluding supply air fan heat","rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","rating point heating coil entering air dry-bulb 21.11 C, coil entering wet-bulb 15.55 C","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Rated COP",0,("does not include supply air fan heat or supply air fan electrical energy","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Air Flow Rate",0,("Flow rate corresponding to rated total capacity","should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total heating capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Total Heating Capacity Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","Biquadratic curve is recommended if sufficient manufacturer data is","available for the heating capacity to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Total Heating Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the energy input ratio to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (sensible heating load/steady-state heating capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Defrost Energy Input Ratio Function of Temperature Curve Name","",("biquadratic curve = a + b*wb + c*wb**2 + d*oat + e*oat**2 + f*wb*oat","wb = wet-bulb temperature (C) of air entering the indoor coil","oat = outdoor air dry-bulb temperature (C)","only required if ReverseCycle defrost strategy is specified","",),"BiquadraticCurves"))
        self.InsertField(FieldChoice(self,"Supply Air Fan Operating Mode","","",["CyclingFanAndCompressor","ContinuousFanWithCyclingCompressor",]))
        self.InsertField(FieldReal(self,"Minimum Outdoor Dry-Bulb Temperature for Compressor Operation","-8.0","",-20.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Defrost Operation","5.0","",0.0,7.22,"",""))
        self.InsertField(FieldReal(self,"Crankcase Heater Capacity","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation","10.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Defrost Strategy","ReverseCycle","",["ReverseCycle","Resistive",]))
        self.InsertField(FieldChoice(self,"Defrost Control","Timed","",["Timed","OnDemand",]))
        self.InsertField(FieldReal(self,"Defrost Time Period Fraction","0.058333",("Fraction of time in defrost mode","only applicable if timed defrost control is specified","",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Resistive Defrost Heater Capacity","0.0",("only applicable if resistive defrost strategy is specified","Units: W",),0.0,"","",""))


        self.addReference("HeatingCoilsDX")
        self.addReference("HeatingCoilsDXSingleSpeed")
        self.setRequired(False)
        self.setMinfields(22)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:DX:SingleSpeed")





class Coil_Heating_DX_MultiSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Supply Air Fan Operating Mode","","",["CyclingFanAndCompressor","ContinuousFanWithCyclingCompressor",]))
        self.InsertField(FieldReal(self,"Minimum Outdoor Dry-Bulb Temperature for Compressor Operation","-8.0","",-20.0,"","",""))
        self.InsertField(FieldReal(self,"Crankcase Heater Capacity","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Crankcase Heater Operation","10.0","",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Defrost Energy Input Ratio Function of Temperature Curve Name","",("biquadratic curve = a + b*wb + c*wb**2 + d*oat + e*oat**2 + f*wb*oat","wb = wet-bulb temperature (C) of air entering the indoor coil","oat = outdoor air dry-bulb temperature (C)","only required if ReverseCycle defrost strategy is specified","",),"BiquadraticCurves"))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Defrost Operation","5.0","",0.0,7.22,"",""))
        self.InsertField(FieldChoice(self,"Defrost Strategy","ReverseCycle","",["ReverseCycle","Resistive",]))
        self.InsertField(FieldChoice(self,"Defrost Control","Timed","",["Timed","OnDemand",]))
        self.InsertField(FieldReal(self,"Defrost Time Period Fraction","0.058333",("Fraction of time in defrost mode","only applicable if timed defrost control is specified","",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Resistive Defrost Heater Capacity","0.0",("only applicable if resistive defrost strategy is specified","Units: W",),0.0,"","",""))
        self.InsertField(FieldYesNo(self,"Apply Part Load Fraction to Speeds Greater than 1","No","",["Yes","No",]))
        self.InsertField(FieldChoice(self,"Fuel Type","NaturalGas","",["Electricity","NaturalGas","PropaneGas","Diesel","Gasoline","FuelOil#1","FuelOil#2",]))
        self.InsertField(FieldInt(self,"Number of Speeds",0,("Enter the number of the following sets of data for coil capacity, COP,","flow rate, and associated curves.","",),2,4,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Rated Total Heating Capacity",0,("capacity excluding supply air fan heat","rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","rating point heating coil entering air dry-bulb 21.11 C, coil entering","wet-bulb 15.55 C","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Speed 1 Rated COP",0,("does not include supply air fan heat or supply air fan electrical energy","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Rated Air Flow Rate",0,("Flow rate corresponding to rated total capacity","should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","heating capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 1 Total Heating Capacity Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the heating capacity to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Total Heating Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Energy Input Ratio Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the energy input ratio to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 1 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (sensible heating load/steady-state heating capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 1 Rated Waste Heat Fraction of Power Input",0,("recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 1 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Rated Total Heating Capacity",0,("capacity excluding supply air fan heat","rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","rating point heating coil entering air dry-bulb 21.11 C, coil entering","wet-bulb 15.55 C","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Speed 2 Rated COP",0,("does not include supply air fan heat or supply air fan electrical energy","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Rated Air Flow Rate",0,("Flow rate corresponding to rated total capacity","should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","heating capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 2 Total Heating Capacity Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the heating capacity to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Total Heating Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Energy Input Ratio Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the energy input ratio to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 2 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (sensible heating load/steady-state heating capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 2 Rated Waste Heat Fraction of Power Input",0,("recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 2 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Rated Total Heating Capacity",0,("capacity excluding supply air fan heat","rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","rating point heating coil entering air dry-bulb 21.11 C, coil entering","wet-bulb 15.55 C","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Speed 3 Rated COP",0,("does not include supply air fan heat or supply air fan electrical energy","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Rated Air Flow Rate",0,("Flow rate corresponding to rated total capacity","should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","heating capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 3 Total Heating Capacity Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the heating capacity to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Total Heating Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Energy Input Ratio Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the energy input ratio to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 3 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (sensible heating load/steady-state heating capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 3 Rated Waste Heat Fraction of Power Input",0,("recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 3 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Rated Total Heating Capacity",0,("capacity excluding supply air fan heat","rating point outdoor dry-bulb temp 8.33 C, outdoor wet-bulb temp 6.11 C","rating point heating coil entering air dry-bulb 21.11 C, coil entering","wet-bulb 15.55 C","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Speed 4 Rated COP",0,("does not include supply air fan heat or supply air fan electrical energy","",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Rated Air Flow Rate",0,("Flow rate corresponding to rated total capacity","should be between 0.00004027 m3/s and .00006041 m3/s per watt of rated total","heating capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Speed 4 Total Heating Capacity Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the heating capacity to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Total Heating Capacity Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Energy Input Ratio Function of Temperature Curve Name","",("quadratic curve = a + b*oat + c*oat**2","cubic curve = a + b*oat + c*oat**2 + d*oat**3","biquadratic curve = a + b*iat + c*iat**2 + d*oat + e*oat**2 + f*iat*oat","oat = outdoor air dry-bulb temperature (C)","iat = indoor air dry-bulb temperature (C)","biquadratic curve is recommended if sufficient manufacturer data is","available for the energy input ratio to be sensitive to both iat and oat.","",),"BiquatricQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Energy Input Ratio Function of Flow Fraction Curve Name","",("quadratic curve = a + b*ff + c*ff**2","cubic curve = a + b*ff + c*ff**2 + d*ff**3","ff = fraction of the full load flow","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Speed 4 Part Load Fraction Correlation Curve Name","",("quadratic curve = a + b*PLR + c*PLR**2","cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = part load ratio (sensible heating load/steady-state heating capacity)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Speed 4 Rated Waste Heat Fraction of Power Input",0,("recoverable waste heat at full load and rated conditions","Units: dimensionless",),"",1.0,0.0,""))
        self.InsertField(FieldText(self,"Speed 4 Waste Heat Function of Temperature Curve Name","",("curve = a + b*odb + c*odb**2 + d*db + e*db**2 + f*odb*db","odb = Outdoor air dry-bulb temperature (C)","db = entering coil dry-bulb temperature (C)","",)))


        self.addReference("HeatingCoilsDX")
        self.setRequired(False)
        self.setMinfields(37)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:DX:MultiSpeed")





class Coil_Cooling_WaterToAirHeatPump_ParameterEstimation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Compressor Type","",("Parameters 1-5 are as named below.","Parameters 6-10 depend on the type of compressor and fluid.","Refer to the InputOutputReference on the parameters required","",),["Reciprocating","Rotary","Scroll",]))
        self.InsertField(FieldObjectlist(self,"Source Side Fluid Name","Water",("(Water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldObjectlist(self,"Refrigerant Type","R22","","FluidNames"))
        self.InsertField(FieldReal(self,"Design Source Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Cooling Coil Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow rate and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity","0.0",("Ratio of the initial moisture evaporation rate from the cooling coil (when","the compressor first turns off) and the coil's steady-state latent capacity","at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"High Pressure Cutoff",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Low Pressure Cutoff",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Parameter 1",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 2",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 3",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 4",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 5",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 6",0,("for Compressor Type=Reciprocating, Compressor Piston Displacement, units m3/s","for Compressor Type=Rotary, Compressor Piston Displacement, units m3/s","for Compressor Type=Scroll, Compressor Piston Displacement, units m3/s","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 7",0,("for Compressor Type=Reciprocating, Compressor Clearance Factor, units dimensionless","for Compressor Type=Rotary, Compressor Suction/Discharge Pressure drop, units Pa","for Compressor Type=Scroll, Volume Ratio, units dimensionless","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 8",0,("for Compressor Type=Reciprocating, Compressor Suction/Discharge Pressure drop, units Pa","for Compressor Type=Rotary, N/A,","for Compressor Type=Scroll,  Leak Rate Coefficient, units dimensionless","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Parameter 9",0,("for source side fluid=pure water, Source Side Heat Transfer Coefficient, units W/K","for source side fluid=water + antifreeze, Source Side Heat Transfer Resistance1, units dimensionless","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Parameter 10",0,("for source side fluid=pure water, N/A","for source side fluid=water + antifreeze, Source Side Heat Transfer Resistance2, units W/K","",),0.0,"","",""))


        self.addReference("CoolingCoilsWaterToAirHP")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:WaterToAirHeatPump:ParameterEstimation")





class Coil_Heating_WaterToAirHeatPump_ParameterEstimation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Compressor Type","",("Parameters 1-4 are as named below.","Parameters 5-9 depend on the type of compressor.","Refer to the InputOutputReference on the parameters required","",),["Reciprocating","Rotary","Scroll",]))
        self.InsertField(FieldObjectlist(self,"Source Side Fluid Name","Water",("(Water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldObjectlist(self,"Refrigerant Type","R22","","FluidNames"))
        self.InsertField(FieldReal(self,"Design Source Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Heating Coil Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"High Pressure Cutoff",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Low Pressure Cutoff",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Parameter 1",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 2",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 3",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 4",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 5",0,("for Compressor Type=Reciprocating, Compressor Piston Displacement, units m3/s","for Compressor Type=Rotary, Compressor Piston Displacement, units m3/s","for Compressor Type=Scroll, Compressor Piston Displacement, units m3/s","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 6",0,("for Compressor Type=Reciprocating, Compressor Clearance Factor, units dimensionless","for Compressor Type=Rotary, Compressor Suction/Discharge Pressure drop, units Pa","for Compressor Type=Scroll, Volume Ratio, units dimensionless","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Parameter 7",0,("for Compressor Type=Reciprocating, Compressor Suction/Discharge Pressure drop, units Pa","for Compressor Type=Rotary, Not Required, Enter 0","for Compressor Type=Scroll,  Leak Rate Coefficient, units dimensionless","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Parameter 8",0,("for source side fluid=pure water, Source Side Heat Transfer Coefficient, units W/K","for source side fluid=water + antifreeze, Source Side Heat Transfer Resistance1, units dimensionless","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Parameter 9",0,("for source side fluid=pure water, Not Required, Enter 0","for source side fluid=water + antifreeze, Source Side Heat Transfer Resistance2, units W/K","",),0.0,"","",""))


        self.addReference("HeatingCoilsWaterToAirHP")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:WaterToAirHeatPump:ParameterEstimation")





class Coil_Cooling_WaterToAirHeatPump_EquationFit(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Rated Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Total Cooling Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Sensible Cooling Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Cooling Power Consumption",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Total Cooling Capacity Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Total Cooling Capacity Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Total Cooling Capacity Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Total Cooling Capacity Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Total Cooling Capacity Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Sensible Cooling Capacity Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Sensible Cooling Capacity Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Sensible Cooling Capacity Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Sensible Cooling Capacity Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Sensible Cooling Capacity Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Sensible Cooling Capacity Coefficient 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Power Consumption Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Power Consumption Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Power Consumption Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Power Consumption Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Power Consumption Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Time for Condensate Removal to Begin","0.0",("The nominal time for condensate to begin leaving the coil's condensate","drain line at the coil's rated air flow and temperature conditions.","Nominal time is equal to the ratio of the energy of the coil's maximum","condensate holding capacity (J) to the coil's steady-state latent capacity (W).","Suggested value is 1000; zero value means latent degradation model is disabled.","Units: s",),0.0,3000.0,"",""))
        self.InsertField(FieldReal(self,"Ratio of Initial Moisture Evaporation Rate and Steady State Latent Capacity","0.0",("Ratio of the initial moisture evaporation rate from the cooling coil (when","the compressor first turns off) and the coil's steady-state latent capacity","at rated air flow rate and temperature conditions. Suggested value is 1.5; zero value","means latent degradation model is disabled.","Units: dimensionless",),0.0,5.0,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Cooling:WaterToAirHeatPump:EquationFit")





class Coil_Heating_WaterToAirHeatPump_EquationFit(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Rated Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Heating Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Heating Power Consumption",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Power Consumption Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Power Consumption Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Power Consumption Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Power Consumption Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Power Consumption Coefficient 5",0,"","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:Heating:WaterToAirHeatPump:EquationFit")





class Coil_WaterHeating_AirToWaterHeatPump(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Unique name for this instance of a heat pump water heater DX coil.","",)))
        self.InsertField(FieldReal(self,"Rated Heating Capacity",0,("Heating capacity at the rated inlet air temperatures, rated condenser inlet","water temperature, rated air flow rate, and rated water flow rate.","Can optionally include condenser pump heat.","Units: W",),"","",0,""))
        self.InsertField(FieldReal(self,"Rated COP","3.2",("Heating coefficient of performance at the rated inlet air temperatures,","rated condenser inlet water temperature, rated air flow rate, and rated water flow rate.","Can optionally include condenser pump power and evaporator fan power.","Units: W/W",),"","",0,""))
        self.InsertField(FieldReal(self,"Rated Sensible Heat Ratio","0.85",("Gross air-side sensible heat ratio at the rated inlet air temperatures,","rated condenser inlet water temperature, rated air flow rate, and rated water flow rate.","Sensible heat ratio equals gross sensible cooling capacity divided by gross total cooling","capacity. Rated SHR (gross) should not include evaporator fan heat, only sensible cooling","and dehumidification by the coil alone.","",),0.5,1,"",""))
        self.InsertField(FieldReal(self,"Rated Evaporator Inlet Air Dry-Bulb Temperature","19.7",("Evaporator inlet air dry-bulb temperature corresponding to rated coil performance","(heating capacity, COP and SHR).","Units: C",),"","",5,""))
        self.InsertField(FieldReal(self,"Rated Evaporator Inlet Air Wet-Bulb Temperature","13.5",("Evaporator inlet air wet-bulb temperature corresponding to rated coil performance","(heating capacity, COP and SHR).","Units: C",),"","",5,""))
        self.InsertField(FieldReal(self,"Rated Condenser Inlet Water Temperature","57.5",("Condenser inlet water temperature corresponding to rated coil performance","(heating capacity, COP and SHR).","Units: C",),"","",25,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Evaporator Air Flow Rate",0,("Evaporator air flow rate corresponding to rated coil performance","(heating capacity, COP and SHR).","Default is 5.035E-5 m3/s/W (31.25 cfm/MBH) of rated heating capacity when autocalculated.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Condenser Water Flow Rate",0,("Condenser water flow rate corresponding to rated coil performance","(heating capacity, COP and SHR).","Default is 4.487E-8 m3/s/W (0.208 gpm/MBH) of rated heating capacity when autocalculated.","A warning message will be issued if the ratio of Rated Condenser Water Flow Rate","to Heating Capacity is less than 1.79405E-8 m3/s/W (0.083 gpm/MBH)","or greater than 8.97024E-8 m3/s/W (0.417 gpm/MBH), but the simulation will continue.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldYesNo(self,"Evaporator Fan Power Included in Rated COP","Yes",("Select Yes if the evaporator fan power is included in the rated COP. This choice field","impacts the calculation of compressor electric power.","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Condenser Pump Power Included in Rated COP","No",("Select Yes if the condenser pump power is included in the rated COP. This choice field","impacts the calculation of compressor electric power.","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Condenser Pump Heat Included in Rated Heating Capacity and Rated COP","No",("Select Yes if the condenser pump heat is included in the rated heating capacity and","rated COP. This choice field impacts the calculation of water heating capacity.","",),["Yes","No",]))
        self.InsertField(FieldReal(self,"Condenser Water Pump Power","0",("A warning message will be issued if the ratio of Condenser Water Pump Power to Rated","Heating Capacity exceeds 0.1422 W/W (41.67 Watts/MBH), but the simulation will continue.","Units: W",),0,"","",""))
        self.InsertField(FieldReal(self,"Fraction of Condenser Pump Heat to Water","0.2",("Fraction of pump heat transferred to the condenser water. The pump is assumed","to be located downstream of the condenser.","",),0,1,"",""))
        self.InsertField(FieldText(self,"Evaporator Air Inlet Node Name","",("The node from which the DX coil draws its inlet air.","",)))
        self.InsertField(FieldText(self,"Evaporator Air Outlet Node Name","",("The node to which the DX coil sends its outlet air.","",)))
        self.InsertField(FieldText(self,"Condenser Water Inlet Node Name","",("The node from which the DX coil condenser draws its inlet water.","This name should match the source side outlet node name in the associated","water heater tank object.","",)))
        self.InsertField(FieldText(self,"Condenser Water Outlet Node Name","",("The node to which the DX coil condenser sends its outlet water.","This name should match the source side inlet node name in the associated","water heater tank object.","",)))
        self.InsertField(FieldReal(self,"Crankcase Heater Capacity","0",("The compressor crankcase heater only operates when the dry-bulb temperature of air","surrounding the compressor is below the Maximum Ambient Temperature for Crankcase","Heater Operation and the DX coil is off.  The ambient temperature surrounding the","compressor is set by the WaterHeater:HeatPump parent object (field Compressor Location).","Units: W",),0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Ambient Temperature for Crankcase Heater Operation","10",("The compressor crankcase heater only operates when the dry-bulb temperature of air","surrounding the compressor is below the Maximum Outdoor Temperature for Crankcase","Heater Operation and the unit is off. The ambient temperature surrounding the","compressor is set by the WaterHeater:HeatPump parent object (field Compressor Location).","Units: C",),0,"","",""))
        self.InsertField(FieldChoice(self,"Evaporator Air Temperature Type for Curve Objects","WetBulbTemperature",("Determines temperature type for heating capacity curves and","heating COP curves. This input determines whether","the inlet air dry-bulb or wet-bulb temperature is used to evaluate these curves.","",),["DryBulbTemperature","WetBulbTemperature",]))
        self.InsertField(FieldObjectlist(self,"Heating Capacity Function of Temperature Curve Name","",("Heating capacity modifier curve (function of temperature) should be biquadratic or cubic.","Biquadratic curve = a + b(ta) + c(ta)^2 + d(tw) + e(tw)^2 + f(ta)(tw).","Cubic curve = a + b(ta) + c(ta)^2 + d(ta)^3.","ta = evaporator inlet air [dry-bulb or wet-bulb] temperature (C).","tw = condenser inlet water temperature (C).","The field Evaporator Air Temperature Type for Curve Objects determines if dry-bulb or wet-bulb","is used as the evaporator inlet air temperature (ta).","",),"BiQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Heating Capacity Function of Air Flow Fraction Curve Name","",("Heating capacity modifier curve (function of air flow fraction) should be quadratic or cubic.","Quadratic curve = a + b(ff) + c(ff)^2.","Cubic curve = a + b(ff) + c(ff)^2 + d(ff)^3.","ff = fraction of the rated evaporator air flow rate.","Use curve coefficients of 1,0,0 or leave this field blank when neglecting performance impacts","due to variations in air flow rate fraction.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Heating Capacity Function of Water Flow Fraction Curve Name","",("Heating capacity modifier curve (function of water flow fraction) should be quadratic or cubic.","Quadratic curve = a + b(ff) + c(ff)^2.","Cubic curve = a + b(ff) + c(ff)^2 + d(ff)^3.","ff = fraction of the rated condenser water flow rate.","Use curve coefficients of 1,0,0 or leave this field blank when neglecting performance impacts","due to variations in water flow rate fraction.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Heating COP Function of Temperature Curve Name","",("Heating COP modifier curve (function of temperature) should be biquadratic or cubic.","Biquadratic curve = a + b(ta) + c(ta)^2 + d(tw) + e(tw)^2 + f(ta)(tw).","Cubic curve = a + b(ta) + c(ta)^2 + d(ta)^3.","ta = evaporator inlet air [dry-bulb or wet-bulb] temperature (C).","tw = condenser inlet water temperature (C).","The field Evaporator Air Temperature Type for Curve Objects determines if dry-bulb or wet-bulb","is used as the evaporator inlet air temperature (ta).","",),"BiQuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Heating COP Function of Air Flow Fraction Curve Name","",("Heating COP modifier curve (function of air flow fraction) should be quadratic or cubic.","Quadratic curve = a + b(ff) + c(ff)^2.","Cubic curve = a + b(ff) + c(ff)^2 + d(ff)^3.","ff = fraction of the rated evaporator air flow rate.","Use curve coefficients of 1,0,0 or leave this field blank when neglecting performance impacts","due to variations in air flow rate fraction.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Heating COP Function of Water Flow Fraction Curve Name","",("Heating COP modifier curve (function of water flow fraction) should be quadratic or cubic.","Quadratic curve = a + b(ff) + c(ff)^2.","Cubic curve = a + b(ff) + c(ff)^2 + d(ff)^3.","ff = fraction of the rated condenser water flow rate.","Use curve coefficients of 1,0,0 or leave this field blank when neglecting performance impacts","due to variations in water flow rate fraction.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Part Load Fraction Correlation Curve Name","",("Part Load Fraction Correlation (function of part load ratio) should be quadratic or cubic.","Quadratic curve = a + b(PLR) + c(PLR)^2.","Cubic curve = a + b(PLR) + c(PLR)^2 + d(PLR)^3.","PLR = part load ratio (heating delivered/steady-state heating capacity).","Use curve coefficients of 1,0,0 or leave this field blank when neglecting performance impacts","due to variations in part load ratio.","",),"QuadraticCubicCurves"))


        self.addReference("HeatPumpWaterHeaterDXCoils")
        self.setRequired(False)
        self.setMinfields(21)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:WaterHeating:AirToWaterHeatPump")





class Coil_WaterHeating_Desuperheater(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Unique name for this instance of a desuperheater water heating coil.","",)))
        self.InsertField(FieldText(self,"Availability Schedule Name","",("Schedule values of 0 denote the desuperheater heating coil is off and the parasitic electric","energy is also off.","",)))
        self.InsertField(FieldText(self,"Setpoint Temperature Schedule Name","",("Defines the cut-out temperature where the desuperheater water heating coil turns off.","The desuperheater heating coil setpoint temperature should always be greater","than the water tank's heater (element or burner) setpoint temperature. Temperature","schedule values should be in degrees C.","",)))
        self.InsertField(FieldReal(self,"Dead Band Temperature Difference","5",("Setpoint temperature minus the dead band temperature difference defines","the cut-in temperature where the desuperheater water heating coil turns on.","The water tank's heater (element or burner) setpoint temperature","should always be less than the desuperheater heating coil cut-in temperature.","Units: deltaC",),"",20,0,""))
        self.InsertField(FieldReal(self,"Rated Heat Reclaim Recovery Efficiency","0.25",("Enter the fraction of waste heat reclaimed by the desuperheater water heating coil.","",),"",0.3,0.0,""))
        self.InsertField(FieldReal(self,"Rated Inlet Water Temperature",0,("The inlet water temperature corresponding to the rated heat reclaim recovery efficiency.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Rated Outdoor Air Temperature",0,("The outdoor air dry-bulb temperature corresponding to the","rated heat reclaim recovery efficiency.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Inlet Water Temperature for Heat Reclaim",0,("The desuperheater water heating coil is off when the inlet water temperature is above","the maximum inlet water temperature for heat reclaim.","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Heat Reclaim Efficiency Function of Temperature Curve Name","",("A biquadratic curve defining the performance of the desuperheater heating coil.","Performance can be specified as a function of inlet water temperature, outdoor air","dry-bulb temperature, or both.","Curve = a + b*Tw + c*Tw**2 + d*odb + e*odb**2 + f*Tw*odb.","Tw = desuperheater heating coil entering water temperature (C).","Odb = outdoor dry-bulb temperature at DX system condenser (C).","",),"CubicCurves"))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",("The node from which the desuperheater heating coil draws its inlet water.","This name should match the source side outlet node name in the associated","water heater tank object.","",)))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",("The node to which the desuperheater heating coil sends its outlet water.","This name should match the source side inlet node name in the associated","water heater tank object.","",)))
        self.InsertField(FieldChoice(self,"Tank Object Type","WaterHeater:Mixed",("Specify the type of water heater tank used by this desuperheater water heating coil.","",),["WaterHeater:Mixed",]))
        self.InsertField(FieldText(self,"Tank Name","",("The name of the water heater tank used by this desuperheater water heating coil.","Needs to match the name used in the corresponding water heater object.","",)))
        self.InsertField(FieldChoice(self,"Heating Source Object Type","",("The type of DX system that is providing waste heat for reclaim.","",),["Coil:Cooling:DX:SingleSpeed","Coil:Cooling:DX:TwoSpeed","Coil:Cooling:DX:TwoStageWithHumidityControlMode","Refrigeration:CompressorRack","Refrigeration:Condenser",]))
        self.InsertField(FieldObjectlist(self,"Heating Source Name","",("The name of the DX system used for heat reclaim.","",),"DesuperHeatingCoilSources"))
        self.InsertField(FieldReal(self,"Water Flow Rate",0,("The operating water flow rate.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldReal(self,"Water Pump Power","0.0",("The water circulation pump electric power.","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Fraction of Pump Heat to Water","0.2",("The fraction of pump heat transferred to the water. The pump is assumed to be downstream of","the desuperheater water heating coil.","",),0,1,"",""))
        self.InsertField(FieldReal(self,"On-Cycle Parasitic Electric Load","0",("Parasitic electric power consumed when the desuperheater water heating coil operates.","Parasitic electric load does not contribute to water heating or the zone air heat balance.","Units: W",),0,"","",""))
        self.InsertField(FieldReal(self,"Off-Cycle Parasitic Electric Load","0",("Parasitic electric load consumed when the desuperheater water heating coil is off.","Parasitic electric load does not contribute to water heating or the zone air heat balance.","Off-cycle parasitic power is 0 when the availability schedule is 0.","Units: W",),0,"","",""))


        self.addReference("WaterHeatingCoilsDesuperheater")
        self.setRequired(False)
        self.setMinfields(18)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("Coil:WaterHeating:Desuperheater")





class CoilSystem_Cooling_Water_HeatExchangerAssisted(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Heat Exchanger Object Type","","",["HeatExchanger:AirToAir:FlatPlate","HeatExchanger:AirToAir:SensibleAndLatent",]))
        self.InsertField(FieldText(self,"Heat Exchanger Name","",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:Water","Coil:Cooling:Water:DetailedGeometry",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsWaterNoHX"))


        self.addReference("CoolingCoilsWater")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Coils") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoilSystem:Cooling:Water:HeatExchangerAssisted")





class CoilSystem_Cooling_DX_HeatExchangerAssisted(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Heat Exchanger Object Type","","",["HeatExchanger:AirToAir:FlatPlate","HeatExchanger:AirToAir:SensibleAndLatent","HeatExchanger:Desiccant:BalancedFlow",]))
        self.InsertField(FieldObjectlist(self,"Heat Exchanger Name","","","HXAirToAirNames"))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:DX:SingleSpeed",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsDXBypassFactorEmpirical"))


        self.addReference("CoolingCoilsDX")
        self.addReference("CoolingCoilsDXSingleSpeed")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Evaporative Coolers") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoilSystem:Cooling:DX:HeatExchangerAssisted")





class EvaporativeCooler_Direct_CelDekPad(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Direct Pad Area",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Direct Pad Depth",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Recirculating Water Pump Power Consumption",0,"","","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Control Type","",""))
        self.InsertField(FieldObjectlist(self,"Water Supply Storage Tank Name","","","WaterStorageTankNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Evaporative Coolers") 
        self.setExtensible(-1)
        self.setClassnameIDD("EvaporativeCooler:Direct:CelDekPad")





class EvaporativeCooler_Indirect_CelDekPad(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Direct Pad Area",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Direct Pad Depth",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Recirculating Water Pump Power Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Secondary Fan Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Secondary Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Secondary Fan Delta Pressure",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Indirect Heat Exchanger Effectiveness",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Primary Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Primary Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Control Type","",""))
        self.InsertField(FieldObjectlist(self,"Water Supply Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldText(self,"Secondary Air Inlet Node Name","",("Enter the name of an outdoor air node","",)))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Evaporative Coolers") 
        self.setExtensible(-1)
        self.setClassnameIDD("EvaporativeCooler:Indirect:CelDekPad")





class EvaporativeCooler_Indirect_WetCoil(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Coil Maximum Efficiency",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Coil Flow Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Recirculating Water Pump Power Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Secondary Fan Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Secondary Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Secondary Fan Delta Pressure",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Primary Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Primary Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Control Type","",""))
        self.InsertField(FieldObjectlist(self,"Water Supply Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldText(self,"Secondary Air Inlet Node Name","",("Enter the name of an outdoor air node","",)))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Evaporative Coolers") 
        self.setExtensible(-1)
        self.setClassnameIDD("EvaporativeCooler:Indirect:WetCoil")





class EvaporativeCooler_Indirect_ResearchSpecial(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Cooler Maximum Effectiveness",0,"",0.0,2.0,"",""))
        self.InsertField(FieldReal(self,"Cooler Flow Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Recirculating Water Pump Power Consumption",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Secondary Fan Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Secondary Fan Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Secondary Fan Delta Pressure",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Primary Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Primary Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Control Type","",""))
        self.InsertField(FieldReal(self,"Dewpoint Effectiveness Factor",0,"","","","",""))
        self.InsertField(FieldText(self,"Secondary Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldText(self,"Relief Air Inlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Water Supply Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldReal(self,"Drift Loss Fraction",0,("Rate of drift loss as a fraction of evaporated water flow rate","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Blowdown Concentration Ratio",0,("Characterizes the rate of blowdown in the evaporative cooler.","Blowdown is water intentionally drained from the cooler in order to offset the build up","of solids in the water that would otherwise occur because of evaporation.","Ratio of solids in the blowdown water to solids in the make up water.","A typical value is 3.  If left blank then there is no blowdown.","",),2.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Evaporative Coolers") 
        self.setExtensible(-1)
        self.setClassnameIDD("EvaporativeCooler:Indirect:ResearchSpecial")





class EvaporativeCooler_Direct_ResearchSpecial(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Cooler Effectiveness",0,("effectiveness with respect to wetbulb depression","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Recirculating Water Pump Power Consumption",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Water Supply Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldReal(self,"Drift Loss Fraction",0,("Rate of drift loss as a fraction of evaporated water flow rate","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Blowdown Concentration Ratio",0,("Characterizes the rate of blowdown in the evaporative cooler.","Blowdown is water intentionally drained from the cooler in order to offset the build up","of solids in the water that would otherwise occur because of evaporation.","Ratio of solids in the blowdown water to solids in the make up water.","A typical value is 3. If left blank then there is no blowdown.","",),2.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Humidifiers and Dehumidifiers") 
        self.setExtensible(-1)
        self.setClassnameIDD("EvaporativeCooler:Direct:ResearchSpecial")





class Humidifier_Steam_Electric(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Rated Capacity",0,("Capacity is m3/s of water at 5.05 C","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Rated Power",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Rated Fan Power",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Standby Power",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Water Storage Tank Name","","","WaterStorageTankNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Humidifiers and Dehumidifiers") 
        self.setExtensible(-1)
        self.setClassnameIDD("Humidifier:Steam:Electric")





class Dehumidifier_Desiccant_NoFans(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Process Air Inlet Node Name","",("This is the node entering the process side of the desiccant wheel.","",)))
        self.InsertField(FieldText(self,"Process Air Outlet Node Name","",("This is the node leaving the process side of the desiccant wheel.","",)))
        self.InsertField(FieldText(self,"Regeneration Air Inlet Node Name","",("This is the node entering the regeneration side of the desiccant wheel","after the regeneration coil.","",)))
        self.InsertField(FieldText(self,"Regeneration Fan Inlet Node Name","",("Node for air entering the regeneration fan, mass flow is set","by the desiccant dehumidifier module.","",)))
        self.InsertField(FieldChoice(self,"Control Type","",("Type of setpoint control:","LeavingMaximumHumidityRatioSetpoint means that the unit is controlled","to deliver air at the Leaving Max Humidity Ratio Setpoint (see below),","SystemNodeMaximumHumidityRatioSetpoint means that the leaving humidity","ratio setpoint is the System Node Humidity Ratio Max property","of the Process Air Outlet Node.  A Setpoint","object must be used to control this setpoint.","Both control types use bypass dampers to prevent overdrying.","",),["LeavingMaximumHumidityRatioSetpoint","SystemNodeMaximumHumidityRatioSetpoint",]))
        self.InsertField(FieldReal(self,"Leaving Maximum Humidity Ratio Setpoint",0,("Fixed setpoint for maximum process air leaving humidity ratio","Applicable only when Control Type = LeavingMaximumHumidityRatioSetpoint.","Units: kg-H2O/kg-air",),"","","",""))
        self.InsertField(FieldReal(self,"Nominal Process Air Flow Rate",0,("Process air flow rate at nominal conditions","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Nominal Process Air Velocity",0,("Process air velocity at nominal flow","When using Performance Model Type of Default, must be 2.032 to 4.064 m/s (400 to 800 fpm)","Units: m/s",),"",6,0.0,""))
        self.InsertField(FieldReal(self,"Rotor Power",0,("Power input to wheel rotor motor","Units: W",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Regeneration Coil Object Type","",("heating coil type","",),["Coil:Heating:Electric","Coil:Heating:Gas",]))
        self.InsertField(FieldObjectlist(self,"Regeneration Coil Name","",("Name of heating coil object for regeneration air","",),"HeatingCoilsGasElec"))
        self.InsertField(FieldChoice(self,"Regeneration Fan Object Type","",("Type of fan object for regeneration air.  When using the Default","Performance Model Type (see below), only Fan:VariableVolume is valid.","",),["Fan:VariableVolume","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Regeneration Fan Name","",("Name of fan object for regeneration air","",),"FansCVandVAV"))
        self.InsertField(FieldChoice(self,"Performance Model Type","",("Specifies whether the default performance model or user-specified","curves should be used to model the performance.  The default model","is a generic solid desiccant wheel using performance curves of the form:","curve = C1 + C2*edb + C3*edb**2 + C4*ew + C5*ew**2 + C6*vel + C7*vel**2","+ C8*edb*ew + C9*edb**2*ew**2 + C10*edb*vel + C11*edb**2*vel**2","+ C12*ew*vel + C13*ew**2*vel**2 + C14*ALOG(edb) + C15*ALOG(ew) + C16*ALOG(vel)","  edb = process entering dry-bulb temperature [C]","  ew  = process entering humidity ratio [kg/kg]","  vel = process air velocity [m/s]","If UserCurves are specified, then performance is calculated as follows:","  Leaving Dry-Bulb = (Leaving Dry-Bulb fTW Curve) * (Leaving Dry-Bulb fV Curve)","  Leaving Humidity Ratio = (Leaving Humidity Ratio fTW Curve) * (Leaving Humidity Ratio fV Curve)","  Regen Energy = (Regen Energy fTW Curve) * (Regen Energy fV Curve)","  Regen Velocity = (Regen Velocity fTW Curve) * (Regen Velocity fV Curve)","",),["Default","UserCurves",]))
        self.InsertField(FieldObjectlist(self,"Leaving Dry-Bulb Function of Entering Dry-Bulb and Humidity Ratio Curve Name","",("Leaving dry-bulb of process air as a function of entering dry-bulb","and entering humidity ratio, biquadratic curve","curve = C1 + C2*edb + C3*edb**2 + C4*ew + C5*ew**2 + C6*edb*ew","edb = process entering dry-bulb temperature [C]","ew  = process entering humidity ratio [kg/kg]","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Leaving Dry-Bulb Function of Air Velocity Curve Name","",("Leaving dry-bulb of process air as a function of air velocity,","quadratic curve.","curve = C1 + C2*v + C3*v**2","v = process air velocity [m/s]","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Leaving Humidity Ratio Function of Entering Dry-Bulb and Humidity Ratio Curve Name","",("Leaving humidity ratio of process air as a function of entering dry-bulb","and entering humidity ratio, biquadratic curve","curve = C1 + C2*edb + C3*edb**2 + C4*ew + C5*ew**2 + C6*edb*ew","edb = process entering dry-bulb temperature [C]","ew  = process entering humidity ratio [kg/kg]","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Leaving Humidity Ratio Function of Air Velocity Curve Name","",("Leaving humidity ratio of process air as a function of","process air velocity, quadratic curve.","curve = C1 + C2*v + C3*v**2","v = process air velocity [m/s]","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Regeneration Energy Function of Entering Dry-Bulb and Humidity Ratio Curve Name","",("Regeneration energy [J/kg of water removed] as a function of","entering dry-bulb and entering humidity ratio, biquadratic curve","curve = C1 + C2*edb + C3*edb**2 + C4*ew + C5*ew**2 + C6*edb*ew","edb = process entering dry-bulb temperature [C]","ew  = process entering humidity ratio [kg/kg]","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Regeneration Energy Function of Air Velocity Curve Name","",("Regeneration energy [J/kg of water removed] as a function of","process air velocity, quadratic curve.","curve = C1 + C2*v + C3*v**2","v = process air velocity [m/s]","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Regeneration Velocity Function of Entering Dry-Bulb and Humidity Ratio Curve Name","",("Regeneration velocity [m/s] as a function of","entering dry-bulb and entering humidity ratio, biquadratic curve","curve = C1 + C2*edb + C3*edb**2 + C4*ew + C5*ew**2 + C6*edb*ew","edb = process entering dry-bulb temperature [C]","ew  = process entering humidity ratio [kg/kg]","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Regeneration Velocity Function of Air Velocity Curve Name","",("Regeneration velocity [m/s] as a function of","process air velocity, quadratic curve.","curve = C1 + C2*v + C3*v**2","v = process air velocity [m/s]","",),"QuadraticCurves"))
        self.InsertField(FieldReal(self,"Nominal Regeneration Temperature",0,("Nominal regen temperature upon which the regen energy modifier"," curve is based.  Not used if Default if chosen for the field Performance Mode Type.","121 C is a commonly used value.","Units: C",),40,250,"",""))


        self.insertMemo(("This object models a solid desiccant dehumidifier. The process","air stream is the air which is dehumidified. The regeneration air","stream is the air which is heated to regenerate the desiccant.","This object determines the process air outlet conditions, the","load on the regeneration heating coil, the electric power consumption","for the wheel rotor motor, and the regeneration air fan mass flow rate.","All other heat exchangers are modeled as separate objects connected","to the inlet and outlet nodes of the dehumidifier. The solid","desiccant dehumidifier is typically used in an AirLoopHVAC:OutdoorAirSystem,","but can also be specified in any AirLoopHVAC.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Humidifiers and Dehumidifiers") 
        self.setExtensible(-1)
        self.setClassnameIDD("Dehumidifier:Desiccant:NoFans")





class Dehumidifier_Desiccant_System(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Availability Schedule Name","",""))
        self.InsertField(FieldChoice(self,"Desiccant Heat Exchanger Object Type","","",["HeatExchanger:Desiccant:BalancedFlow",]))
        self.InsertField(FieldObjectlist(self,"Desiccant Heat Exchanger Name","","","HXDesiccantBalanced"))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldChoice(self,"Regeneration Air Fan Object Type","","",["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldText(self,"Regeneration Air Fan Name","",""))
        self.InsertField(FieldChoice(self,"Regeneration Air Fan Placement","DrawThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldChoice(self,"Regeneration Air Heater Object Type","","",["Coil:Heating:Electric","Coil:Heating:Gas",]))
        self.InsertField(FieldText(self,"Regeneration Air Heater Name","",""))
        self.InsertField(FieldReal(self,"Regeneration Inlet Air Setpoint Temperature",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Companion Cooling Coil Object Type","","",["Coil:Cooling:DX:SingleSpeed","Coil:Cooling:DX:TwoStageWithHumidityControlMode",]))
        self.InsertField(FieldText(self,"Companion Cooling Coil Name","",""))
        self.InsertField(FieldYesNo(self,"Companion Cooling Coil Upstream of Dehumidifier Process Inlet","No",("Select Yes if the companion cooling coil is located directly upstream","of the desiccant heat exchanger's process air inlet node.","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Companion Coil Regeneration Air Heating","No","",["Yes","No",]))
        self.InsertField(FieldReal(self,"Exhaust Fan Maximum Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Exhaust Fan Maximum Power",0,"","","","",""))
        self.InsertField(FieldText(self,"Exhaust Fan Power Curve Name","",("Curve object type must be Curve:Quadratic or Curve:Cubic","",)))


        self.insertMemo(("This compound object models a desiccant heat exchanger, an optional","heater, and associated fans. The process air stream is the air which","is dehumidified. The regeneration air stream is the air which is","heated to regenerate the desiccant. The desiccant heat exchanger","transfers both sensible and latent energy between the process and","regeneration air streams. The desiccant dehumidifier is typically used","in an AirLoopHVAC:OutdoorAirSystem, but can also be specified in any AirLoopHVAC.",))
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Heat Recovery") 
        self.setExtensible(-1)
        self.setClassnameIDD("Dehumidifier:Desiccant:System")





class HeatExchanger_AirToAir_FlatPlate(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Flow Arrangement Type","","",["CounterFlow","ParallelFlow","CrossFlowBothUnmixed",]))
        self.InsertField(FieldYesNo(self,"Economizer Lockout","Yes",("Yes means that the heat exchanger will be locked out (off)","when the economizer is operating or high humidity control is active","",),["Yes","No",]))
        self.InsertField(FieldReal(self,"Ratio of Supply to Secondary hA Values",0,("Ratio of h*A for supply side to h*A for exhaust side","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal Supply Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal Supply Air Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Supply Air Outlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Secondary Air Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal Secondary Air Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Electric Power",0,"","","","",""))
        self.InsertField(FieldText(self,"Supply Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Supply Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Air Outlet Node Name","",""))


        self.addReference("HXAirToAirNames")
        self.addReference("HXAirToAirFlatPlateNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Heat Recovery") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatExchanger:AirToAir:FlatPlate")





class HeatExchanger_AirToAir_SensibleAndLatent(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Supply Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Sensible Effectiveness at 100% Heating Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Effectiveness at 100% Heating Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Sensible Effectiveness at 75% Heating Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Effectiveness at 75% Heating Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Sensible Effectiveness at 100% Cooling Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Effectiveness at 100% Cooling Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Sensible Effectiveness at 75% Cooling Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Latent Effectiveness at 75% Cooling Air Flow","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Supply Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Supply Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Exhaust Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Exhaust Air Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Nominal Electric Power","0.0","",0.0,"","",""))
        self.InsertField(FieldYesNo(self,"Supply Air Outlet Temperature Control","No","",["No","Yes",]))
        self.InsertField(FieldChoice(self,"Heat Exchanger Type","Plate","",["Plate","Rotary",]))
        self.InsertField(FieldChoice(self,"Frost Control Type","None","",["None","ExhaustAirRecirculation","ExhaustOnly","MinimumExhaustTemperature",]))
        self.InsertField(FieldReal(self,"Threshold Temperature","1.7",("Supply (outdoor) air inlet temp threshold for exhaust air recirculation and","exhaust only frost control types. Exhaust air outlet threshold Temperature for","minimum exhaust temperature frost control type.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Initial Defrost Time Fraction","0.083",("Fraction of the time when frost control will be invoked at the threshold temperature.","This field only used for exhaust air recirc and exhaust-only frost control types.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Rate of Defrost Time Fraction Increase","0.012",("Rate of increase in defrost time fraction as actual temp falls below threshold temperature.","This field only used for exhaust air recirc and exhaust-only frost control types.","Units: 1/K",),0.0,"","",""))
        self.InsertField(FieldYesNo(self,"Economizer Lockout","Yes",("Yes means that the heat exchanger will be locked out (off)","when the economizer is operating or high humidity control is active","",),["Yes","No",]))


        self.insertMemo(("This object models an air-to-air heat exchanger using effectiveness relationships.","The heat exchanger can transfer sensible energy, latent energy, or both between the","supply (primary) and exhaust (secondary) air streams.",))
        self.addReference("HXAirToAirNames")
        self.addReference("HXAirToAirSensibleAndLatentNames")
        self.setRequired(False)
        self.setMinfields(19)
        self.setGroup("Heat Recovery") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatExchanger:AirToAir:SensibleAndLatent")





class HeatExchanger_Desiccant_BalancedFlow(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Regeneration Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Regeneration Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Process Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Process Air Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Heat Exchanger Performance Object Type","HeatExchanger:Desiccant:BalancedFlow:PerformanceDataType1","",["HeatExchanger:Desiccant:BalancedFlow:PerformanceDataType1",]))
        self.InsertField(FieldObjectlist(self,"Heat Exchanger Performance Name","","","DesiccantHXPerfData"))
        self.InsertField(FieldYesNo(self,"Economizer Lockout","No",("Yes means that the heat exchanger will be locked out (off)","when the economizer is operating or high humidity control is active","",),["Yes","No",]))


        self.insertMemo(("This object models a balanced desiccant heat exchanger.","The heat exchanger transfers both sensible and latent energy between the","process and regeneration air streams. The air flow rate and face velocity","are assumed to be the same on both the process and regeneration sides of the","heat exchanger.",))
        self.addReference("HXDesiccantBalanced")
        self.addReference("HXAirToAirNames")
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Heat Recovery") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatExchanger:Desiccant:BalancedFlow")





class HeatExchanger_Desiccant_BalancedFlow_PerformanceDataType1(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Nominal Air Flow Rate",0,("Air flow rate at nominal conditions (assumed to be the same for both sides","of the heat exchanger).","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Nominal Air Face Velocity",0,"","",6.0,0.0,""))
        self.InsertField(FieldReal(self,"Nominal Electric Power","0.0",("Parasitic electric power (e.g., desiccant wheel motor)","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Equation Coefficient 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Inlet Air Humidity Ratio for Temperature Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Inlet Air Humidity Ratio for Temperature Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Inlet Air Temperature for Temperature Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Inlet Air Temperature for Temperature Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Process Inlet Air Humidity Ratio for Temperature Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Process Inlet Air Humidity Ratio for Temperature Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Process Inlet Air Temperature for Temperature Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Process Inlet Air Temperature for Temperature Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Air Velocity for Temperature Equation",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Air Velocity for Temperature Equation",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Outlet Air Temperature for Temperature Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Outlet Air Temperature for Temperature Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Inlet Air Relative Humidity for Temperature Equation",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Inlet Air Relative Humidity for Temperature Equation",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Process Inlet Air Relative Humidity for Temperature Equation",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Process Inlet Air Relative Humidity for Temperature Equation",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Humidity Ratio Equation Coefficient 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Inlet Air Humidity Ratio for Humidity Ratio Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Inlet Air Humidity Ratio for Humidity Ratio Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Inlet Air Temperature for Humidity Ratio Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Inlet Air Temperature for Humidity Ratio Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Process Inlet Air Humidity Ratio for Humidity Ratio Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Process Inlet Air Humidity Ratio for Humidity Ratio Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Process Inlet Air Temperature for Humidity Ratio Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Process Inlet Air Temperature for Humidity Ratio Equation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Air Velocity for Humidity Ratio Equation",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Air Velocity for Humidity Ratio Equation",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Outlet Air Humidity Ratio for Humidity Ratio Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Outlet Air Humidity Ratio for Humidity Ratio Equation",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Regeneration Inlet Air Relative Humidity for Humidity Ratio Equation",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Regeneration Inlet Air Relative Humidity for Humidity Ratio Equation",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Process Inlet Air Relative Humidity for Humidity Ratio Equation",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Process Inlet Air Relative Humidity for Humidity Ratio Equation",0,"",0.0,100.0,"",""))


        self.insertMemo(("RTO = B1 + B2*RWI + B3*RTI + B4*(RWI/RTI) + B5*PWI + B6*PTI + B7*(PWI/PTI)","      + B8*RFV","RWO = C1 + C2*RWI + C3*RTI + C4*(RWI/RTI) + C5*PWI + C6*PTI + C7*(PWI/PTI)","      + C8*RFV","where,","RTO = Dry-bulb temperature of the regeneration outlet air (C)","RWO = Humidity ratio of the regeneration outlet air (kg/kg)","RWI = Humidity ratio of the regeneration inlet air (kg/kg)","RTI = Dry-bulb temperature of the regeneration inlet air (C)","PWI = Humidity ratio of the process inlet air (kg/kg)","PTI = Dry-bulb temperature of the process inlet air (C)","RFV = Regeneration Face Velocity (m/s)",))
        self.addReference("DesiccantHXPerfData")
        self.setRequired(False)
        self.setMinfields(52)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatExchanger:Desiccant:BalancedFlow:PerformanceDataType1")





class AirLoopHVAC_Unitary_Furnace_HeatOnly(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Furnace Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Furnace Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("A fan operating mode schedule value of 0 indicates cycling fan mode (supply air","fan cycles on and off in tandem with the heating coil).","Any other schedule value indicates continuous fan mode (supply air fan operates","continuously regardless of heating coil operation).","Leaving this schedule name blank will default to cycling fan mode for the","entire simulation period.","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature","80.0","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate",0,(" This value should be > 0 and <= than the fan air flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Controlling Zone or Thermostat Location","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Fraction of Supply Air Flow That Goes Through the Controlling Zone",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Supply Fan Object Type","",("Fan:ConstantVolume only works with continuous fan operating mode (i.e. fan","operating mode schedule values are greater than 0).","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Fan Name","","","FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",("Only works with gas and electric coils","",),["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilsGasElec"))


        self.insertMemo(("identical to the AirLoopHVAC:UnitaryHeatOnly object",))
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:Unitary:Furnace:HeatOnly")





class AirLoopHVAC_Unitary_Furnace_HeatCool(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("A schedule value greater than zero (usually 1 is used) indicates that the unit is","available to operate as needed. A value less than or equal to zero (usually zero","is used) denotes that the unit must be off.","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Furnace Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Furnace Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("A fan operating mode schedule value of 0 indicates cycling fan mode (supply air","fan cycles on and off in tandem with the cooling or heating coil).","Any other schedule value indicates continuous fan mode (supply air fan operates","continuously regardless of cooling or heating coil operation). Provide a schedule","with non-zero values when high humidity control is specified.","Leaving this schedule name blank will default to cycling fan mode for the","entire simulation period.","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature","80.0","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Cooling Operation",0,("Must be less than or equal to the fan's maximum flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Heating Operation",0,("Must be less than or equal to the fan's maximum flow fate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate When No Cooling or Heating is Needed",0,("Must be less than or equal to the fan's maximum flow rate.","Only used when fan operating mode is continuous (disregarded for cycling fan mode).","This air flow rate is used when no heating or cooling is required (i.e., the DX coil","compressor and heating coil are off). If this field is left blank or zero, the supply","air flow rate from the previous on cycle (either cooling or heating) is used.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Controlling Zone or Thermostat Location","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Fraction of Supply Air Flow That Goes Through the Controlling Zone",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Supply Fan Object Type","",("Fan:ConstantVolume only works with continuous fan operating mode (i.e. supply","air fan operating mode schedule values not equal to 0).","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Fan Name","","","FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",(" Only works with gas and electric coils","",),["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilsGasElec"))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","",(" Only works with DX cooling coil types","",),["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsDXSingleSpeed"))
        self.InsertField(FieldChoice(self,"Dehumidification Control Type","None",("None = meet sensible load only","Multimode = activate enhanced dehumidification mode","as needed and meet sensible load.  Valid only with","cooling coil type CoilSystem:Cooling:DX:HeatExchangerAssisted.","This control mode allows the heat exchanger to be turned","on and off based on the zone dehumidification requirements.","A ZoneControl:Humidistat object is also required.","CoolReheat = cool beyond the dry bulb setpoint.","as required to meet the humidity setpoint.  Valid with all","cooling coil types. When a heat exchanger assisted cooling","coil is used, the heat exchanger is locked on at all times.","A ZoneControl:Humidistat object is also required.","",),["None","Multimode","CoolReheat",]))
        self.InsertField(FieldChoice(self,"Reheat Coil Object Type","",("Only required if dehumidification control type is *CoolReheat*","Only works with gas, electric, and desuperheater heating coils","",),["Coil:Heating:Gas","Coil:Heating:Electric","Coil:Heating:Desuperheater",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Name","",("Only required if dehumidification control type is *CoolReheat*","",),"HeatingCoilsGasElecDesup"))


        self.insertMemo(("identical to the AirLoopHVAC:UnitaryHeatCool object",))
        self.setRequired(False)
        self.setMinfields(18)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:Unitary:Furnace:HeatCool")





class AirLoopHVAC_UnitaryHeatOnly(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Unitary System Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Unitary System Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("A fan operating mode schedule value of 0 indicates cycling fan mode (supply air","fan cycles on and off in tandem with the heating coil).","Any other schedule value indicates continuous fan mode (supply air fan operates","continuously regardless of heating coil operation).","Leaving this schedule name blank will default to cycling fan mode for the","entire simulation period.","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature","80.0","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate",0,(" This value should be > 0 and <= than the fan air flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Controlling Zone or Thermostat Location","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Fraction of Supply Air Flow That Goes Through the Controlling Zone",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Supply Fan Object Type","",("Fan:ConstantVolume only works with continuous fan operating mode (i.e. fan","operating mode schedule values are greater than 0).","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Fan Name","","","FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",(" Only works with gas and electric coils","",),["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilsGasElec"))


        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:UnitaryHeatOnly")





class AirLoopHVAC_UnitaryHeatCool(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Unitary System Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Unitary System Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("A fan operating mode schedule value of 0 indicates cycling fan mode (supply air","fan cycles on and off in tandem with the cooling or heating coil).","Any other schedule value indicates continuous fan mode (supply air fan operates","continuously regardless of cooling or heating coil operation). Provide a schedule","with non-zero values when high humidity control is specified.","Leaving this schedule name blank will default to cycling fan mode for the","entire simulation period.","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature","80.0","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Cooling Operation",0,("Must be less than or equal to the fan's maximum flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Heating Operation",0,("Must be less than or equal to the fan's maximum flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate When No Cooling or Heating is Needed",0,("Must be less than or equal to the fan's maximum flow rate.","Only used when fan operating mode is continuous (disregarded for cycling fan mode).","This air flow rate is used when no heating or cooling is required (i.e., the DX coil","compressor and heating coil are off). If this field is left blank or zero, the supply","air flow rate from the previous on cycle (either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldObjectlist(self,"Controlling Zone or Thermostat Location","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Fraction of Supply Air Flow That Goes Through the Controlling Zone",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Supply Fan Object Type","",("Fan:ConstantVolume only works with continuous fan operating mode (i.e. supply","air fan operating mode schedule values not equal to 0).","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Fan Name","","","FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",(" Only works with gas and electric Coils","",),["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","","","HeatingCoilsGasElec"))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","",(" Only works with DX cooling coil types","",),["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsDXSingleSpeed"))
        self.InsertField(FieldChoice(self,"Dehumidification Control Type","None",("None = meet sensible load only","Multimode = activate enhanced dehumidification mode","as needed and meet sensible load.  Valid only with","cooling coil type CoilSystem:Cooling:DX:HeatExchangerAssisted.","This control mode allows the heat exchanger to be turned","on and off based on the zone dehumidification requirements.","A ZoneControl:Humidistat object is also required.","CoolReheat = cool beyond the dry bulb setpoint.","as required to meet the humidity setpoint.  Valid with all","cooling coil types. When a heat exchanger assisted Cooling","coil is used, the heat exchanger is locked on at all times.","A ZoneControl:Humidistat object is also required.","",),["None","Multimode","CoolReheat",]))
        self.InsertField(FieldChoice(self,"Reheat Coil Object Type","",("Only required if dehumidification control type is *CoolReheat*","Only works with gas, electric, and desuperheater heating coils","",),["Coil:Heating:Gas","Coil:Heating:Electric","Coil:Heating:Desuperheater",]))
        self.InsertField(FieldObjectlist(self,"Reheat Coil Name","",("Only required if dehumidification control type is *CoolReheat*","",),"HeatingCoilsGasElecDesup"))


        self.setRequired(False)
        self.setMinfields(18)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:UnitaryHeatCool")





class AirLoopHVAC_UnitaryHeatPump_AirToAir(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("A schedule value greater than zero (usually 1 is used) indicates that the unit is","available to operate as needed. A value less than or equal to zero (usually zero","is used) denotes that the unit must be off.","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Cooling Operation",0,("Must be less than or equal to the fan's maximum flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate During Heating Operation",0,("Must be less than or equal to the fan's maximum flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate When No Cooling or Heating is Needed",0,("Must be less than or equal to the fan�s maximum flow rate.","Only used when fan operating mode is continuous (disregarded for cycling fan mode).","This air flow rate is used when no heating or cooling is required (i.e., the DX coil","compressor and supplemental heating coil are off). If this field is left blank or zero,","the supply air flow rate from the previous on cycle (either cooling or heating) is used.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Controlling Zone or Thermostat Location","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Fraction of Supply Air Flow That Goes Through the Controlling Zone",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Supply Air Fan Object Type","",("Fan:ConstantVolume only works with continuous fan operating mode (i.e. fan","operating mode schedule values are greater than 0 or the fan operating mode","schedule name field is left blank).","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Name","",(" Needs to match in the fan object","",),"FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",(" Only works with Coil:Heating:DX:SingleSpeed","",),["Coil:Heating:DX:SingleSpeed",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","",(" Needs to match in the DX heating coil object","",),"HeatingCoilsDXSingleSpeed"))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","",("Only works with Coil:Cooling:DX:SingleSpeed or","CoilSystem:Cooling:DX:HeatExchangerAssisted","",),["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","",("Needs to match in the DX cooling coil object","",),"CoolingCoilsDXSingleSpeed"))
        self.InsertField(FieldChoice(self,"Supplemental Heating Coil Object Type","","",["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Supplemental Heating Coil Name","",(" Needs to match in the supplemental heating coil object","",),"HeatingCoilsGasElec"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature from Supplemental Heater",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation","21.0","","",21.0,"",""))
        self.InsertField(FieldChoice(self,"Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("A fan operating mode schedule value of 0 indicates cycling fan mode (supply air","fan cycles on and off in tandem with the cooling or heating coil).","Any other schedule value indicates continuous fan mode (supply air fan operates","continuously regardless of cooling or heating coil operation).","Leaving this schedule name blank will default to cycling fan mode for the","entire simulation period.","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:UnitaryHeatPump:AirToAir")





class AirLoopHVAC_UnitaryHeatPump_WaterToAir(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate",0,(" This value should be > 0 and <= than the fan air flow rate.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Controlling Zone or Thermostat Location","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Fraction of Supply Air Flow That Goes Through the Controlling Zone",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Supply Air Fan Object Type","",(" Only works with On/Off Fan","",),["Fan:OnOff",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Name","",("Needs to match Fan:OnOff object","",),"FansOnOff"))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","","",["Coil:Heating:WaterToAirHeatPump:ParameterEstimation","Coil:Heating:WaterToAirHeatPump:EquationFit",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","",(" Needs to match in the water-to-air heatpump heating coil object","",),"HeatingCoilsWaterToAirHP"))
        self.InsertField(FieldReal(self,"Heating Convergence","0.001","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:WaterToAirHeatPump:ParameterEstimation","Coil:Cooling:WaterToAirHeatPump:EquationFit",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","",("Needs to match in the water-to-air heatpump cooling coil object","",),"CoolingCoilsWaterToAirHP"))
        self.InsertField(FieldReal(self,"Cooling Convergence","0.001","","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Cycling Rate","2.5",("The maximum on-off cycling rate for the compressor","Suggested value is 2.5 for a typical heat pump","Units: cycles/hr",),0.0,5.0,"",""))
        self.InsertField(FieldReal(self,"Heat Pump Time Constant","60.0",("Time constant for the cooling coil's capacity to reach steady state after startup","Suggested value is 60 for a typical heat pump","Units: s",),0.0,500.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of On-Cycle Power Use","0.01",("The fraction of on-cycle power use to adjust the part load fraction based on","the off-cycle power consumption due to crankcase heaters, controls, fans, and etc.","Suggested value is 0.01 for a typical heat pump","",),0.0,0.05,"",""))
        self.InsertField(FieldReal(self,"Heat Pump Fan Delay Time","60",("Programmed time delay for heat pump fan to shut off after compressor cycle off.","Only required for heat pump operating mode=CyclingFanAndCompressor","Enter 0 for heat pump operating mode=ContinuousFanWithCyclingCompressor","Units: s",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Supplemental Heating Coil Object Type","","",["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Supplemental Heating Coil Name","",(" Needs to match in the supplemental heating coil object","",),"HeatingCoilsGasElec"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature from Supplemental Heater",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation","21.0","","",21.0,"",""))
        self.InsertField(FieldText(self,"Outdoor Dry-Bulb Temperature Sensor Node Name","",""))
        self.InsertField(FieldChoice(self,"Fan Placement","BlowThrough","",["BlowThrough","DrawThrough",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("Enter the name of a schedule that controls fan operation. Schedule values of 0 denote","cycling fan operation (fan cycles with cooling or heating coil). Schedule values greater","than 0 denote constant fan operation (fan runs continually regardless of coil operation).","The fan operating mode defaults to cycling fan operation if this field is left blank.","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(26)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:UnitaryHeatPump:WaterToAir")





class AirLoopHVAC_UnitaryHeatCool_VAVChangeoverBypass(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Enter a unique name for this unitary system.","",)))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("Enter the availability schedule name. Schedule values of zero denote system","is Off. Non-zero schedule values denote system is available to operate.","",),"ScheduleNames"))
        self.InsertField(FieldRealAutocalculate(self,"System Air Flow Rate During Cooling Operation",0,("Enter the system air flow rate during cooling","operation or specify autosize.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"System Air Flow Rate During Heating Operation",0,("Enter the system air flow rate during heating","operation or specify autosize.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"System Air Flow Rate When No Cooling or Heating is Needed",0,("Only used when the supply air fan operating mode is continuous (see field","Supply air fan operating mode schedule name). This system air flow rate","is used when no heating or cooling is required and the coils are off.","If this field is left blank or zero, the system air flow rate from the","previous on cycle (either cooling or heating) is used.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate During Cooling Operation",0,("Enter the outdoor air flow rate during","cooling operation or specify autosize.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate During Heating Operation",0,("Enter the outdoor air flow rate during","heating operation or specify autosize.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Outdoor Air Flow Rate When No Cooling or Heating is Needed",0,("Only used when the supply air fan operating mode is continuous (see field","Supply air fan operating mode schedule name). This outdoor air flow rate","is used when no heating or cooling is required and the coils are off.","If this field is left blank or zero, the outdoor air flow rate from the previous on cycle","(either cooling or heating) is used.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Outdoor Air Flow Rate Multiplier Schedule Name","",("Enter the name of a schedule that contains multipliers for the outdoor air","flow rates. Schedule values must be from 0 to 1.","If field is left blank, model assumes multiplier is 1 for the entire simulation period.","",)))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("Enter the name of the unitary system's air inlet node.","",)))
        self.InsertField(FieldText(self,"Bypass Duct Mixer Node Name","",("Enter the name of the bypass duct mixer node. This name should be the name","of the return air node for the outdoor air mixer associated with this system.","This node name must be different from the air inlet node name.","",)))
        self.InsertField(FieldText(self,"Bypass Duct Splitter Node Name","",("Enter the name of the bypass duct splitter node.","This splitter air node is the outlet node of the last component in this unitary","system. For blow through fan placement, the splitter air node is the outlet","node of the heating coil. For draw through fan placement, the splitter node","is the outlet node of the supply air fan.","",)))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("Enter the name of the unitary system's air outlet node.","",)))
        self.InsertField(FieldObjectlist(self,"Outdoor Air Mixer Name","",("Enter the name of the outdoor air mixer used with this unitary system.","",),"OutdoorAirMixers"))
        self.InsertField(FieldChoice(self,"Supply Air Fan Object Type","",("Specify the type of supply air fan used in this unitary system.","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Name","",("Enter the name of the supply air fan used in this unitary system.","",),"FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Supply Air Fan Placement","",("Specify supply air fan placement as either blow through or draw through.","BlowThrough means the supply air fan is located before the cooling","coil. DrawThrough means the supply air fan is located after the heating coil.","",),["BlowThrough","DrawThrough",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("Enter the name of a schedule to control the supply air fan. Schedule Name values of zero","mean that the supply air fan will cycle off if there is no cooling or heating load","in any of the zones being served by this system. Non-zero schedule values mean","that the supply air fan will operate continuously even if there is no cooling or","heating load in any of the zones being served. If this field is left blank,","the supply air fan will operate continuously for the entire simulation period.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","",("Specify the type of cooling coil used in this unitary system.","",),["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted","Coil:Cooling:DX:TwoStageWithHumidityControlMode",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","",("Enter the name of the cooling coil used in this unitary system.","",),"CoolingCoilsDXMultiModeandSingleSpeed"))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",("Specify the type of heating coil used in this unitary system.","",),["Coil:Heating:DX:SingleSpeed","Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","",("Enter the name of the heating coil used in this unitary system.","",),"HeatingCoilsGasElecDX"))
        self.InsertField(FieldChoice(self,"Priority Control Mode","ZonePriority",("CoolingPriority = system provides cooling if any zone requires cooling.","HeatingPriority = system provides heating if any zone requires heating.","ZonePriority = system controlled based on the total number of zones","requiring cooling or heating (highest number of zones","in cooling or heating determines the system's operating mode).","",),["CoolingPriority","HeatingPriority","ZonePriority",]))
        self.InsertField(FieldReal(self,"Minimum Outlet Air Temperature During Cooling Operation","8.0",("Specify the minimum outlet air temperature allowed for this unitary system","during cooling operation. This value should be less than the maximum outlet","air temperature during heating operation.","Units: C",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Outlet Air Temperature During Heating Operation","50.0",("Specify the maximum outlet air temperature allowed for this unitary system","during heating operation. This value should be greater than the minimum outlet","air temperature during cooling operation.","Units: C",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Dehumidification Control Type","None",("None = meet sensible load only.","Multimode = activate enhanced dehumidification mode","as needed and meet sensible load.  Valid only with","Coil:Cooling:DX:TwoStageWithHumidityControlMode.","CoolReheat = cool beyond the Dry-Bulb temperature setpoint","as required to meet the humidity setpoint.  Valid only with","Coil:Cooling:DX:TwoStageWithHumidityControlMode.","For all dehumidification controls, the max humidity setpoint","on this unitary system's air outlet node is used.","This must be set using ZoneControl:Humidistat and","SetpointManager:SingleZone:Humidity:Maximum objects.","",),["None","Multimode","CoolReheat",]))


        self.setRequired(False)
        self.setMinfields(22)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:UnitaryHeatCool:VAVChangeoverBypass")





class AirLoopHVAC_UnitaryHeatPump_AirToAir_MultiSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Controlling Zone or Thermostat Location","","","ZoneNames"))
        self.InsertField(FieldRealAutocalculate(self,"Fraction of Supply Air Flow That Goes Through the Controlling Zone",0,"","",1,0,""))
        self.InsertField(FieldChoice(self,"Supply Air Fan Object Type","",("Select the type of supply air fan used in this unitary system.","",),["Fan:OnOff","Fan:ConstantVolume",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Name","",("Enter the name of the supply air fan used in this unitary system.","",),"FansCVandOnOff"))
        self.InsertField(FieldChoice(self,"Supply Air Fan Placement","",("Select supply air fan placement as either BlowThrough or DrawThrough.","BlowThrough means the supply air fan is located before the cooling","coil. DrawThrough means the supply air fan is located after the heating coil","but before the optional supplemental heating coil.","",),["BlowThrough","DrawThrough",]))
        self.InsertField(FieldObjectlist(self,"Supply Air Fan Operating Mode Schedule Name","",("Enter the name of a schedule to control the supply air fan. Schedule values of zero","mean that the supply air fan will cycle off if there is no cooling or heating load","in the control zone. Non-zero schedule values mean that the supply air fan","will operate continuously even if there is no cooling or heating load","in the control zone. If this field is left blank, the supply air fan will","operate continuously for the entire simulation period.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Heating Coil Object Type","",("Only works with Coil:Heating:DX:MultiSpeed","",),["Coil:Heating:DX:MultiSpeed",]))
        self.InsertField(FieldObjectlist(self,"Heating Coil Name","",("Needs to match in the DX heating coil object","",),"HeatingCoilsDX"))
        self.InsertField(FieldReal(self,"Minimum Outdoor Dry-Bulb Temperature for Compressor Operation","-8.0",("Needs to match the corresponding minimum outdoor temperature defined","in the DX heating coil object.","Units: C",),-20.0,"","",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","",("Only works with Coil:Cooling:DX:MultiSpeed","",),["Coil:Cooling:DX:MultiSpeed",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","",("Needs to match in the DX Cooling Coil object","",),"CoolingCoilsDX"))
        self.InsertField(FieldChoice(self,"Supplemental Heating Coil Object Type","","",["Coil:Heating:Gas","Coil:Heating:Electric",]))
        self.InsertField(FieldObjectlist(self,"Supplemental Heating Coil Name","",("Needs to match in the supplemental heating coil object","",),"HeatingCoilsGasElec"))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Supply Air Temperature from Supplemental Heater",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation","21.0","","",21.0,"",""))
        self.InsertField(FieldReal(self,"Auxiliary On-Cycle Electric Power","0","",0,"","",""))
        self.InsertField(FieldReal(self,"Auxiliary Off-Cycle Electric Power","0","",0,"","",""))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("If non-zero, then the heat recovery inlet and outlet node names must be entered.","Used for heat recovery to an EnergyPlus plant loop.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Temperature for Heat Recovery","80.0","",0.0,100.0,"",""))
        self.InsertField(FieldText(self,"Heat Recovery Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Water Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Supply Air Flow Rate When No Cooling or Heating is Needed",0,("Only used when the supply air fan operating mode is continuous (see field","Supply Air Fan Operating Mode Schedule Name). This air flow rate","is used when no heating or cooling is required and the coils are off.","If this field is left blank or zero, the supply air flow rate from the","previous on cycle (either cooling or heating) is used.","Units: m3/s",),0,"","",""))
        self.InsertField(FieldInt(self,"Number of Speeds for Heating",0,("Enter the number of the following sets of data for air flow rates.","",),2,4,"",""))
        self.InsertField(FieldInt(self,"Number of Speeds for Cooling",0,("Enter the number of the following sets of data for air flow rates.","",),2,4,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Supply Air Flow Rate During Heating Operation",0,("Enter the operating supply air flow rate during heating","operation or specify autosize.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Supply Air Flow Rate During Heating Operation",0,("Enter the operating supply air flow rate during heating","operation or specify autosize.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Supply Air Flow Rate During Heating Operation",0,("Enter the operating supply air flow rate during heating","operation or specify autosize.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Supply Air Flow Rate During Heating Operation",0,("Enter the operating supply air flow rate during heating","operation or specify autosize.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 1 Supply Air Flow Rate During Cooling Operation",0,("Enter the operating supply air flow rate during cooling","operation or specify autosize.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 2 Supply Air Flow Rate During Cooling Operation",0,("Enter the operating supply air flow rate during cooling","operation or specify autosize.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 3 Supply Air Flow Rate During Cooling Operation",0,("Enter the operating supply air flow rate during cooling","operation or specify autosize.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Speed 4 Supply Air Flow Rate During Cooling Operation",0,("Enter the operating supply air flow rate during cooling","operation or specify autosize.","Units: m3/s",),"","",0,""))


        self.setRequired(False)
        self.setMinfields(32)
        self.setGroup("Unitary Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed")





class AirLoopHVAC_UnitaryCoolOnly(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"DX Cooling Coil System Inlet Node Name","",""))
        self.InsertField(FieldText(self,"DX Cooling Coil System Outlet Node Name","",""))
        self.InsertField(FieldText(self,"DX Cooling Coil System Sensor Node Name","",""))
        self.InsertField(FieldChoice(self,"Cooling Coil Object Type","","",["Coil:Cooling:DX:SingleSpeed","CoilSystem:Cooling:DX:HeatExchangerAssisted","Coil:Cooling:DX:TwoSpeed","Coil:Cooling:DX:TwoStageWithHumidityControlMode",]))
        self.InsertField(FieldObjectlist(self,"Cooling Coil Name","","","CoolingCoilsDX"))
        self.InsertField(FieldChoice(self,"Dehumidification Control Type","None",("None = meet sensible load only","Multimode = activate enhanced dehumidification mode","as needed and meet sensible load.  Valid only with","Coil:Cooling:DX:TwoStageWithHumidityControlMode or","CoilSystem:Cooling:DX:HeatExchangerAssisted.","CoolReheat = cool beyond the dry bulb setpoint.","as required to meet the humidity setpoint.","Valid for all coil types.","For all dehumidification controls, the max","humidity setpoint on the Sensor Node is used.","This must be set using ZoneControl:Humidistat and","SetpointManager:SingleZone:Humidity:Maximum and","SetpointManager:OutdoorAirPretreat(optional) objects","",),["None","Multimode","CoolReheat",]))
        self.InsertField(FieldYesNo(self,"Run on Sensible Load","Yes",("If Yes, unit will run if there is a sensible load.","If No, unit will not run if there is only a sensible load.","Dehumidification controls will be active if specified.","",),["Yes","No",]))
        self.InsertField(FieldYesNo(self,"Run on Latent Load","No",("If Yes, unit will run if there is a latent load.","even if there is no sensible load.","If No, unit will not run only if there is a latent load.","Dehumidification controls will be active if specified.","",),["Yes","No",]))


        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("Controllers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:UnitaryCoolOnly")





class Controller_WaterCoil(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","",("TemperatureAndHumidityRatio requires a SetpointManager:SingleZone:Humidity:Maximum object","",),["Temperature","HumidityRatio","TemperatureAndHumidityRatio","Flow",]))
        self.InsertField(FieldChoice(self,"Action","","",["Normal","Reverse",]))
        self.InsertField(FieldChoice(self,"Actuator Variable","","",["Flow",]))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldText(self,"Actuator Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Controller Convergence Tolerance","Autosize","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Actuated Flow",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Actuated Flow","0.0000001","","","","",""))


        self.addReference("AirLoopControllers")
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Controllers") 
        self.setExtensible(-1)
        self.setClassnameIDD("Controller:WaterCoil")





class Controller_OutdoorAir(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Relief Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Return Air Node Name","",""))
        self.InsertField(FieldText(self,"Mixed Air Node Name","",""))
        self.InsertField(FieldText(self,"Actuator Node Name","",("Outdoor air inlet node entering the first pre-treat component if any","",)))
        self.InsertField(FieldRealAutocalculate(self,"Minimum Outdoor Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Outdoor Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Economizer Control Type","NoEconomizer","",["FixedDryBulb","FixedEnthalpy","DifferentialDryBulb","DifferentialEnthalpy","FixedDewPointAndDryBulb","ElectronicEnthalpy","DifferentialDryBulbAndEnthalpy","NoEconomizer",]))
        self.InsertField(FieldChoice(self,"Economizer Control Action Type","ModulateFlow","",["ModulateFlow","MinimumFlowWithBypass",]))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Dry-Bulb Temperature",0,("Enter the maximum outdoor dry-bulb temperature limit for FixedDryBulb","economizer control type. No input or blank input means this limit is","not operative. Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Enthalpy",0,("Enter the maximum outdoor enthalpy limit for FixedEnthalpy economizer control type.","No input or blank input means this limit is not operative","Limit is applied regardless of economizer control type.","Units: J/kg",),"","","",""))
        self.InsertField(FieldReal(self,"Economizer Maximum Limit Dewpoint Temperature",0,("Enter the maximum outdoor dewpoint temperature limit for FixedDewPointAndDryBulb","economizer control type. No input or blank input means this limit is not operative.","Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Electronic Enthalpy Limit Curve Name","",("Enter the name of a quadratic or cubic curve which defines the maximum outdoor","humidity ratio (function of outdoor dry-bulb temperature) for ElectronicEnthalpy","economizer control type. No input or blank input means this limit is not operative","Limit is applied regardless of economizer control type.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Economizer Minimum Limit Dry-Bulb Temperature",0,("Enter the minimum outdoor dry-bulb temperature limit for economizer control.","No input or blank input means this limit is not operative","Limit is applied regardless of economizer control type.","Units: C",),"","","",""))
        self.InsertField(FieldChoice(self,"Lockout Type","NoLockout","",["NoLockout","LockoutWithHeating","LockoutWithCompressor",]))
        self.InsertField(FieldChoice(self,"Minimum Limit Type","ProportionalMinimum","",["FixedMinimum","ProportionalMinimum",]))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Air Schedule Name","",("Schedule values multiply the minimum outdoor air flow rate","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Minimum Fraction of Outdoor Air Schedule Name","",("schedule values multiply the design/mixed air flow rate","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Maximum Fraction of Outdoor Air Schedule Name","",("schedule values multiply the design/mixed air flow rate","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Mechanical Ventilation Controller Name","",("Enter the name of a Controller:MechanicalVentilation object.","Optional field for defining outdoor ventilation air based on flow rate per unit floor","area and flow rate per person. Simplified method of demand-controlled ventilation.","",)))
        self.InsertField(FieldObjectlist(self,"Time of Day Economizer Control Schedule Name","",("Optional schedule to simulate *push-button* type economizer control.","Schedule values greater than 0 indicate time-of-day economizer control is enabled.","Economizer control may be used with or without the high humidity control option.","When used together, high humidity control has priority over economizer control.","If the field Economizer Control Type = NoEconomizer, then this option is disabled.","",),"ScheduleNames"))
        self.InsertField(FieldYesNo(self,"High Humidity Control","No",("Optional field to enable modified outdoor air flow rates based on zone relative humidity.","Select Yes to modify outdoor air flow rate based on a zone humidistat.","Select No to disable this feature.","If the field Economizer Control Type = NoEconomizer, then this option is disabled.","",),["Yes","No",]))
        self.InsertField(FieldObjectlist(self,"Humidistat Control Zone Name","",("Enter the name of the zone where the humidistat is located.","This field is only used when the field High Humidity Control = Yes.","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"High Humidity Outdoor Air Flow Ratio","1.0",("Enter the ratio of outdoor air to the maximum outdoor air flow rate when modified air","flow rates are active based on high indoor humidity.","The minimum value must be greater than 0.","This field is only used when the field High Humidity Control = Yes.","",),"","",0.0,""))
        self.InsertField(FieldYesNo(self,"Control High Indoor Humidity Based on Outdoor Humidity Ratio","Yes",("If No is selected, the outdoor air flow rate is modified any time indoor relative","humidity is above the humidistat setpoint. If Yes is selected, the outdoor air","flow rate is modified any time the indoor relative humidity is above the humidistat","setpoint and the outdoor humidity ratio is less than the indoor humidity ratio.","This field is only used when the field High Humidity Control = Yes.","",),["Yes","No",]))


        self.addReference("AirLoopControllers")
        self.setRequired(False)
        self.setMinfields(16)
        self.setGroup("Controllers") 
        self.setExtensible(-1)
        self.setClassnameIDD("Controller:OutdoorAir")





class Controller_MechanicalVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Duplicate groups of Zone name, Ventilation rate per unit floor area, Ventilation rate per occupant,","Zone Air Distribution Effectiveness in cooling mode, Zone Air Distribution Effectiveness","in heating mode, and Zone Air Distribution Effectiveness Schedule to increase allowable number of entries","",)))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("Schedule values greater than 0 indicate mechanical ventilation is enabled","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Zone Outdoor Air Method","","",["Sum","Maximum",]))
        self.InsertField(FieldChoice(self,"System Outdoor Air Method","","",["ZoneSum","VRP",]))
        self.InsertField(FieldObjectlist(self,"Zone 1 Name","",("A zone name or a zone list name may be used here","",),"ZoneAndZoneListNames"))
        self.InsertField(FieldReal(self,"Ventilation Rate per Unit Floor Area 1",0,("0.000508 m3/s-m2 corresponds to 0.1 ft3/min-ft2","Units: m3/s-m2",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Ventilation Rate per Occupant 1",0,("0.00236 m3/s-person corresponds to 5 ft3/min-person","Units: m3/s-person",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Zone Air Distribution Effectiveness in Cooling Mode 1","1.0","","","",0.0,""))
        self.InsertField(FieldReal(self,"Zone Air Distribution Effectiveness in Heating Mode 1","1.0","","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Zone Air Distribution Effectiveness Schedule Name 1","",("optionally used to replace Zone Air Distribution Effectiveness in Cooling and","Heating Mode","",),"ScheduleNames"))


        self.insertMemo(("This object is used in conjuction with Controller:OutdoorAir to specify outdoor","ventilation air based on flow rate per unit floor area and flow rate per person.","The Controller:OutdoorAir object is associated with a specific air loop, so the","outdoor air flow rates specified in Controller:MechanicalVentilation correspond to the zones","attached to that specific air loop.",))
        self.setRequired(False)
        self.setMinfields(10)
        self.setGroup("Controllers") 
        self.setExtensible(6)
        self.setClassnameIDD("Controller:MechanicalVentilation")





class AirLoopHVAC_ControllerList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Controller 1 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 1 Name","","","AirLoopControllers"))
        self.InsertField(FieldChoice(self," Controller 2 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 2 Name","","","AirLoopControllers"))
        self.InsertField(FieldChoice(self," Controller 3 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 3 Name","","","AirLoopControllers"))
        self.InsertField(FieldChoice(self," Controller 4 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 4 Name","","","AirLoopControllers"))
        self.InsertField(FieldChoice(self," Controller 5 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 5 Name","","","AirLoopControllers"))
        self.InsertField(FieldChoice(self," Controller 6 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 6 Name","","","AirLoopControllers"))
        self.InsertField(FieldChoice(self," Controller 7 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 7 Name","","","AirLoopControllers"))
        self.InsertField(FieldChoice(self," Controller 8 Object Type","","",["Controller:WaterCoil","Controller:OutdoorAir",]))
        self.InsertField(FieldObjectlist(self,"Controller 8 Name","","","AirLoopControllers"))


        self.insertMemo(("List controllers in order of control sequence",))
        self.addReference("ControllerLists")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:ControllerList")





class AirLoopHVAC(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Controller List Name","",("Enter the name of an AirLoopHVAC:ControllerList object.","",),"ControllerLists"))
        self.InsertField(FieldObjectlist(self,"Availability Manager List Name","",("Enter the name of an AvailabilityManagerAssignmentList object.","",),"SystemAvailabilityManagerLists"))
        self.InsertField(FieldRealAutocalculate(self,"Design Supply Air Flow Rate","0","","","","",""))
        self.InsertField(FieldObjectlist(self,"Branch List Name","",("Name of a BranchList containing all the branches in this air loop","",),"BranchLists"))
        self.InsertField(FieldObjectlist(self,"Connector List Name","",("Name of a ConnectorList containing all the splitters and mixers in the loop","",),"ConnectorLists"))
        self.InsertField(FieldText(self,"Supply Side Inlet Node Name","",("Name of inlet node where return air enters the supply side of the air loop","",)))
        self.InsertField(FieldText(self,"Demand Side Outlet Node Name","",("Name of outlet node where return air leaves the demand side and enters the supply side.","",)))
        self.InsertField(FieldText(self,"Demand Side Inlet Node Names","",("Name of a Node or NodeList containing the inlet node(s) supplying air to zone equipment.","",)))
        self.InsertField(FieldText(self,"Supply Side Outlet Node Names","",("Name of a Node or NodeList containing the outlet node(s) supplying air to the demand side.","",)))


        self.insertMemo(("Defines a central forced air system",))
        self.addReference("AirPrimaryLoops")
        self.setRequired(False)
        self.setMinfields(10)
        self.setGroup("Air Distribution") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC")





class AirLoopHVAC_OutdoorAirSystem_EquipmentList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Component 1 Object Type","",""))
        self.InsertField(FieldText(self,"Component 1 Name","",""))
        self.InsertField(FieldText(self,"Component 2 Object Type","",""))
        self.InsertField(FieldText(self,"Component 2 Name","",""))
        self.InsertField(FieldText(self,"Component 3 Object Type","",""))
        self.InsertField(FieldText(self,"Component 3 Name","",""))
        self.InsertField(FieldText(self,"Component 4 Object Type","",""))
        self.InsertField(FieldText(self,"Component 4 Name","",""))
        self.InsertField(FieldText(self,"Component 5 Object Type","",""))
        self.InsertField(FieldText(self,"Component 5 Name","",""))
        self.InsertField(FieldText(self,"Component 6 Object Type","",""))
        self.InsertField(FieldText(self,"Component 6 Name","",""))
        self.InsertField(FieldText(self,"Component 7 Object Type","",""))
        self.InsertField(FieldText(self,"Component 7 Name","",""))
        self.InsertField(FieldText(self,"Component 8 Object Type","",""))
        self.InsertField(FieldText(self,"Component 8 Name","",""))
        self.InsertField(FieldText(self,"Component 9 Object Type","",""))
        self.InsertField(FieldText(self,"Component 9 Name","",""))


        self.insertMemo(("List equipment in simulation order",))
        self.addReference("AirLoopOAEquipmentLists")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:OutdoorAirSystem:EquipmentList")





class AirLoopHVAC_OutdoorAirSystem(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Controller List Name","",("Enter the name of an AirLoopHVAC:ControllerList object.","",),"ControllerLists"))
        self.InsertField(FieldObjectlist(self,"Outdoor Air Equipment List Name","",("Enter the name of an AirLoopHVAC:OutdoorAirSystem:EquipmentList object.","",),"AirLoopOAEquipmentLists"))
        self.InsertField(FieldObjectlist(self,"Availability Manager List Name","",("Enter the name of an AvailabilityManagerAssignmentList object.","",),"SystemAvailabilityManagerLists"))


        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Air Distribution") 
        self.setExtensible(-1)
        self.setClassnameIDD("AirLoopHVAC:OutdoorAirSystem")





class OutdoorAir_Mixer(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Mixed Air Node Name","",("Name of Mixed Air Node","",)))
        self.InsertField(FieldText(self,"Outdoor Air Stream Node Name","",("Name of Outdoor Air Stream Node","",)))
        self.InsertField(FieldText(self,"Relief Air Stream Node Name","",("Name of Relief Air Stream Node","",)))
        self.InsertField(FieldText(self,"Return Air Stream Node Name","",("Name of Return Air Stream Node","",)))


        self.insertMemo(("Node names cannot be duplicated within a single OutdoorAir:Mixer object.",))
        self.addReference("OutdoorAirMixers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(-1)
        self.setClassnameIDD("OutdoorAir:Mixer")





class AirLoopHVAC_ZoneSplitter(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet 1 Node Name","",""))


        self.insertMemo(("Split one air stream into N outlet streams (currently 50 per air loop, but extensible).  Node names","cannot be duplicated within a single zone splitter (AirLoopHVAC:ZoneSplitter) list.",))
        self.addReference("ZoneSplitters")
        self.addReference("SupplyPathComponentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(1)
        self.setClassnameIDD("AirLoopHVAC:ZoneSplitter")





class AirLoopHVAC_SupplyPlenum(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Zone Node Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet 1 Node Name","",""))


        self.insertMemo(("Connects 1 zone inlet air stream, through zone supply plenum, to one or more outlets.","Node names cannot be duplicated within a single supply plenum list.",))
        self.addReference("ZonePlenums")
        self.addReference("SupplyPathComponentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(1)
        self.setClassnameIDD("AirLoopHVAC:SupplyPlenum")





class AirLoopHVAC_SupplyPath(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Supply Air Path Inlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Component 1 Object Type","",("Supply path components must be listed in flow order.","",),["AirLoopHVAC:ZoneSplitter","AirLoopHVAC:SupplyPlenum",]))
        self.InsertField(FieldObjectlist(self,"Component 1 Name","","","SupplyPathComponentNames"))


        self.insertMemo(("A supply path can only contain AirLoopHVAC:ZoneSplitter and AirLoopHVAC:SupplyPlenum objects","which may be in series or parallel.",))
        self.addReference("ZoneSupplyAirPaths")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(2)
        self.setClassnameIDD("AirLoopHVAC:SupplyPath")





class AirLoopHVAC_ZoneMixer(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Inlet 1 Node Name","",""))


        self.insertMemo(("Mix N inlet air streams into one (currently 50 per air loop, but extensible).  Node names cannot","be duplicated within a single zone mixer (AirLoopHVAC:ZoneMixer) list.",))
        self.addReference("ZoneMixers")
        self.addReference("ReturnPathComponentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(1)
        self.setClassnameIDD("AirLoopHVAC:ZoneMixer")





class AirLoopHVAC_ReturnPlenum(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Zone Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Inlet 1 Node Name","",""))


        self.insertMemo(("Connects N zone inlet air streams, through zone return plenum, to outlet (currently 30 per air loop)","Node names cannot be duplicated within a single plenum list.",))
        self.addReference("ReturnPathComponentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(1)
        self.setClassnameIDD("AirLoopHVAC:ReturnPlenum")





class AirLoopHVAC_ReturnPath(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Return Air Path Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Component 1 Object Type","","",["AirLoopHVAC:ZoneMixer","AirLoopHVAC:ReturnPlenum",]))
        self.InsertField(FieldObjectlist(self,"Component 1 Name","","","ReturnPathComponentNames"))


        self.insertMemo(("A return air path can only contain one AirLoopHVAC:ZoneMixer","and one or more AirLoopHVAC:ReturnPlenum objects.",))
        self.addReference("ZoneReturnAirPaths")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Air Distribution") 
        self.setExtensible(2)
        self.setClassnameIDD("AirLoopHVAC:ReturnPath")





class Duct(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))


        self.insertMemo(("Passes inlet node state variables to outlet node state variables",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(-1)
        self.setClassnameIDD("Duct")





class Branch(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Flow Rate","0","",0,"","",""))
        self.InsertField(FieldText(self,"Component 1 Object Type","",""))
        self.InsertField(FieldText(self,"Component 1 Name","",""))
        self.InsertField(FieldText(self,"Component 1 Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Component 1 Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Component 1 Branch Control Type","",("for ACTIVE, Component tries to set branch flow and turns off branch if the component is off","for PASSIVE, Component does not try to set branch flow","for SERIESACTIVE, component is active but does not turn off branch when the component is off","for BYPASS,  Component designates a loop bypass","",),["Active","Passive","SeriesActive","Bypass",]))


        self.insertMemo(("List components on the branch in simulation and connection order","Note: this should NOT include splitters or mixers which define","endpoints of branches",))
        self.addReference("Branches")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(5)
        self.setClassnameIDD("Branch")





class BranchList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Branch 1 Name","","","Branches"))


        self.insertMemo(("Branches MUST be listed in Flow order: Inlet branch, then parallel branches, then Outlet branch.","Branches are simulated in the order listed.  Branch names cannot be duplicated within a single branch list.",))
        self.addReference("BranchLists")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(1)
        self.setClassnameIDD("BranchList")





class Connector_Splitter(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Inlet Branch Name","","","Branches"))
        self.InsertField(FieldObjectlist(self,"Outlet Branch 1 Name","","","Branches"))


        self.insertMemo(("Split one air/water stream into N outlet streams.  Branch names cannot be duplicated","within a single Splitter list.",))
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(1)
        self.setClassnameIDD("Connector:Splitter")





class Connector_Mixer(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Outlet Branch Name","","","Branches"))
        self.InsertField(FieldObjectlist(self,"Inlet Branch 1 Name","","","Branches"))


        self.insertMemo(("Mix N inlet air/water streams into one.  Branch names cannot be duplicated within","a single mixer list.",))
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(1)
        self.setClassnameIDD("Connector:Mixer")





class ConnectorList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Connector 1 Object Type","","",["Connector:Splitter","Connector:Mixer",]))
        self.InsertField(FieldText(self,"Connector 1 Name","",""))
        self.InsertField(FieldChoice(self,"Connector 2 Object Type","","",["Connector:Splitter","Connector:Mixer",]))
        self.InsertField(FieldText(self,"Connector 2 Name","",""))


        self.insertMemo(("only two connectors allowed per loop","if two entered, one must be Connector:Splitter and one must be Connector:Mixer",))
        self.addReference("ConnectorLists")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(-1)
        self.setClassnameIDD("ConnectorList")





class NodeList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Node 1 Name","",""))
        self.InsertField(FieldText(self,"Node 2 Name","",""))
        self.InsertField(FieldText(self,"Node 3 Name","",""))
        self.InsertField(FieldText(self,"Node 4 Name","",""))
        self.InsertField(FieldText(self,"Node 5 Name","",""))
        self.InsertField(FieldText(self,"Node 6 Name","",""))
        self.InsertField(FieldText(self,"Node 7 Name","",""))
        self.InsertField(FieldText(self,"Node 8 Name","",""))
        self.InsertField(FieldText(self,"Node 9 Name","",""))
        self.InsertField(FieldText(self,"Node 10 Name","",""))
        self.InsertField(FieldText(self,"Node 11 Name","",""))
        self.InsertField(FieldText(self,"Node 12 Name","",""))
        self.InsertField(FieldText(self,"Node 13 Name","",""))
        self.InsertField(FieldText(self,"Node 14 Name","",""))
        self.InsertField(FieldText(self,"Node 15 Name","",""))
        self.InsertField(FieldText(self,"Node 16 Name","",""))
        self.InsertField(FieldText(self,"Node 17 Name","",""))
        self.InsertField(FieldText(self,"Node 18 Name","",""))
        self.InsertField(FieldText(self,"Node 19 Name","",""))
        self.InsertField(FieldText(self,"Node 20 Name","",""))
        self.InsertField(FieldText(self,"Node 21 Name","",""))
        self.InsertField(FieldText(self,"Node 22 Name","",""))
        self.InsertField(FieldText(self,"Node 23 Name","",""))
        self.InsertField(FieldText(self,"Node 24 Name","",""))
        self.InsertField(FieldText(self,"Node 25 Name","",""))


        self.insertMemo(("This object is used in places where lists of nodes may be","needed, e.g. ZoneHVAC:EquipmentConnections field Zone Air Inlet Node or NodeList Name",))
        self.addReference("NodeLists")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(-1)
        self.setClassnameIDD("NodeList")





class OutdoorAir_Node(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Height Above Ground","-1.0",("A value less than zero indicates that the height will be ignored and the weather file conditions will be used.","Units: m",),"","","",""))


        self.insertMemo(("This object sets the temperature and humidity conditions","for an outdoor air node.  It allows the height above ground to be","specified.  This object may be used more than once.","The same node name may not appear in both an OutdoorAir:Node object and","an OutdoorAir:NodeList object.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Node-Branch Management") 
        self.setExtensible(-1)
        self.setClassnameIDD("OutdoorAir:Node")





class OutdoorAir_NodeList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Node or NodeList Name 1","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 2","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 3","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 4","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 5","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 6","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 7","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 8","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 9","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 10","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 11","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 12","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 13","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 14","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 15","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 16","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 17","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 18","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 19","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 20","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 21","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 22","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 23","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 24","",""))
        self.InsertField(FieldText(self,"Node or NodeList Name 25","",""))


        self.insertMemo(("This object sets the temperature and humidity conditions","for an outdoor air node using the weather data values.","to vary outdoor air node conditions with height above ground","use OutdoorAir:Node instead of this object.","This object may be used more than once.","The same node name may not appear in both an OutdoorAir:Node object and","an OutdoorAir:NodeList object.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Pumps") 
        self.setExtensible(-1)
        self.setClassnameIDD("OutdoorAir:NodeList")





class Pump_VariableSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Rated Pump Head","179352",("default head is 60 feet","Units: Pa",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Power Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Motor Inefficiencies to Fluid Stream","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of the Part Load Performance Curve","1.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 4 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Minimum Flow Rate","0.0",("This value can be zero and will be defaulted to that if not specified.","Units: m3/s",),"","","",""))
        self.InsertField(FieldChoice(self,"Pump Control Type","Continuous","",["Continuous","Intermittent",]))
        self.InsertField(FieldObjectlist(self,"Pump Flow Rate Schedule Name","",("modifies the Rated Flow Rate of the pump on a time basis","the default is that the pump is ON and runs according to its other","operational requirements specified above.  The schedule is for special pump operations","",),"ScheduleNames"))


        self.insertMemo(("This pump model is described in the ASHRAE secondary HVAC toolkit.",))
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Pumps") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pump:VariableSpeed")





class Pump_ConstantSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Rated Pump Head","179352",("default head is 60 feet","Units: Pa",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Power Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Motor Inefficiencies to Fluid Stream","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Pump Control Type","Continuous","",["Continuous","Intermittent",]))
        self.InsertField(FieldObjectlist(self,"Pump Flow Rate Schedule Name","",("modifies the Rated Flow Rate of the pump on a time basis","the default is that the pump is on and runs according to its other","operational requirements specified above.  The schedule is for special pump operations","",),"ScheduleNames"))


        self.insertMemo(("This pump model is described in the ASHRAE secondary HVAC toolkit.",))
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Pumps") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pump:ConstantSpeed")





class Pump_VariableSpeed_Condensate(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Rated Pump Head","179352",("default head is 60 feet","Units: Pa",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Power Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Motor Inefficiencies to Fluid Stream","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of the Part Load Performance Curve","1.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 4 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldObjectlist(self,"Pump Flow Rate Schedule Name","",("modifies the Rated Flow Rate of the pump on a time basis","the default is that the pump is on and runs according to its other","operational requirements specified above.  This schedule is for special pump operations.","",),"ScheduleNames"))


        self.insertMemo(("This pump model is described in the ASHRAE secondary HVAC toolkit.","Variable Speed Condensate pump for Steam Systems",))
        self.setRequired(False)
        self.setMinfields(13)
        self.setGroup("Pumps") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pump:VariableSpeed:Condensate")





class HeaderedPumps_VariableSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Total Rated Flow Rate",0,("If the field is not autosized set to the flow rate to the total flow when all pumps are","running at full load","Units: m3/s",),"","","",""))
        self.InsertField(FieldInt(self,"Number of Pumps in Bank",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Flow Sequencing Control Scheme","Sequential","",["Sequential",]))
        self.InsertField(FieldReal(self,"Rated Pump Head","179352",("default head is 60 feet","Units: Pa",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Power Consumption",0,("If the field is not autosized set to the Power consumed by pump bank when all the pumps","are running at nominal flow","Units: W",),"","","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Motor Inefficiencies to Fluid Stream","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of the Part Load Performance Curve","1.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 4 of the Part Load Performance Curve","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Minimum Flow Rate","0.0",("This value can be zero and will be defaulted to that if not specified.","",),"","","",""))
        self.InsertField(FieldChoice(self,"Pump Control Type","Continuous","",["Continuous","Intermittent",]))
        self.InsertField(FieldObjectlist(self,"Pump Flow Rate Schedule Name","",("modifies the rated flow rate of the pump on a time basis","the default is that the pump is on and runs according to its other","operational requirements specified above.  The schedule is for special pump operations","",),"ScheduleNames"))


        self.insertMemo(("This Headered pump object describes a pump bank with more than 1 pump in parallel",))
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Pumps") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeaderedPumps:VariableSpeed")





class HeaderedPumps_ConstantSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Total Rated Flow Rate",0,("If the field is not autosized set to the flow rate to the total flow when all pumps are","running at full load","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Number of Pumps in Bank",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Flow Sequencing Control Scheme","Sequential","",["Sequential",]))
        self.InsertField(FieldReal(self,"Rated Pump Head","179352",("default head is 60 feet","Units: Pa",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Power Consumption",0,("If the field is not autosized set to the power consumed by pump bank when all the pumps","are running at nominal flow","Units: W",),"","","",""))
        self.InsertField(FieldReal(self,"Motor Efficiency","0.9","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Fraction of Motor Inefficiencies to Fluid Stream","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Pump Control Type","Continuous","",["Continuous","Intermittent",]))
        self.InsertField(FieldObjectlist(self,"Pump Flow Rate Schedule Name","",("modifies the rated flow rate of the pump on a time basis","the default is that the pump is on and runs according to its other","operational requirements specified above.  The schedule is for special pump operations","",),"ScheduleNames"))


        self.insertMemo(("This Headered pump object describes a pump bank with more than 1 pump in parallel",))
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Plant-Condenser Flow Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeaderedPumps:ConstantSpeed")





class TemperingValve(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",("Name of a Node","",)))
        self.InsertField(FieldText(self,"Outlet Node Name","",("Name of a Node","",)))
        self.InsertField(FieldText(self,"Stream 2 Source Node Name","",("Name of a Node","",)))
        self.InsertField(FieldText(self,"Temperature Setpoint Node Name","",("Name of a Node","",)))
        self.InsertField(FieldText(self,"Pump Outlet Node Name","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Non-Zone Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("TemperingValve")





class LoadProfile_Plant(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Load Schedule Name","",("Schedule values are load in [W]","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Peak Flow Rate",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Flow Rate Fraction Schedule Name","","","ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Solar Collectors") 
        self.setExtensible(-1)
        self.setClassnameIDD("LoadProfile:Plant")





class SolarCollectorPerformance_FlatPlate(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Gross Area",0,"","","",0,""))
        self.InsertField(FieldChoice(self,"Test Fluid","Water","",["Water",]))
        self.InsertField(FieldReal(self,"Test Flow Rate",0,"","","",0,""))
        self.InsertField(FieldChoice(self,"Test Correlation Type","","",["Inlet","Average","Outlet",]))
        self.InsertField(FieldReal(self,"Coefficient 1 of Efficiency Equation",0,("Y-intercept term","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Efficiency Equation",0,("1st Order term","Units: W/m2-K",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Efficiency Equation",0,("2nd order term","Units: W/m2-K2",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Incident Angle Modifier",0,("1st order term","",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Incident Angle Modifier",0,("2nd order term","",),"","","",""))


        self.addReference("FlatPlateSolarCollectorParameters")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Solar Collectors") 
        self.setExtensible(-1)
        self.setClassnameIDD("SolarCollectorPerformance:FlatPlate")





class SolarCollector_FlatPlate_Water(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"SolarCollectorPerformance Name","","","FlatPlateSolarCollectorParameters"))
        self.InsertField(FieldObjectlist(self,"Surface Name","","","AllShadingAndHTSurfNames"))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Maximum Flow Rate",0,"","","",0,""))


        self.insertMemo(("Solar Radiation Certification Corporation model",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Solar Collectors") 
        self.setExtensible(-1)
        self.setClassnameIDD("SolarCollector:FlatPlate:Water")





class SolarCollector_FlatPlate_PhotovoltaicThermal(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Surface Name","","","AllShadingAndHTSurfNames"))
        self.InsertField(FieldObjectlist(self,"Photovoltaic-Thermal Model Performance Name","","","FlatPlatePVTParameters"))
        self.InsertField(FieldObjectlist(self,"Photovoltaic Name","",("Enter the name of a Generator:Photovoltaic object.","",),"PVGeneratorNames"))
        self.InsertField(FieldChoice(self,"Thermal Working Fluid Type","","",["Water","Air",]))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Flow Rate",0,"","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Solar Collectors") 
        self.setExtensible(-1)
        self.setClassnameIDD("SolarCollector:FlatPlate:PhotovoltaicThermal")





class SolarCollectorPerformance_PhotovoltaicThermal_Simple(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Fraction of Surface Area with Active Thermal Collector",0,"","",1.0,0.0,""))
        self.InsertField(FieldChoice(self,"Thermal Conversion Efficiency Input Mode Type","","",["Fixed","Scheduled",]))
        self.InsertField(FieldReal(self,"Value for Thermal Conversion Efficiency if Fixed",0,("Efficiency = (thermal power generated [W])/(incident solar[W])","",),0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Thermal Conversion Efficiency Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Front Surface Emittance","0.84","","","",0.00,1.00))


        self.addReference("FlatPlatePVTParameters")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Solar Collectors") 
        self.setExtensible(-1)
        self.setClassnameIDD("SolarCollectorPerformance:PhotovoltaicThermal:Simple")





class SolarCollector_UnglazedTranspired(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Boundary Conditions Model Name","",("Enter the name of a SurfaceProperty:OtherSideConditionsModel object","",),"OSCMNames"))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Inlet Node Name","",("required field if no SolarCollector:UnglazedTranspired:Multisystem","",)))
        self.InsertField(FieldText(self,"Outlet Node Name","",("required field if no SolarCollector:UnglazedTranspired:Multisystem","",)))
        self.InsertField(FieldText(self,"Setpoint Node Name","",("This node is where the mixed air setpoint is determined.","required field if no SolarCollector:UnglazedTranspired:Multisystem","",)))
        self.InsertField(FieldText(self,"Zone Node Name","",("This node is used to indentify the affected zone","required field if no SolarCollector:UnglazedTranspired:Multisystem","",)))
        self.InsertField(FieldReal(self,"Free Heating Setpoint Schedule Name",0,"","","","",""))
        self.InsertField(FieldReal(self,"Diameter of Perforations in Collector",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Distance Between Perforations in Collector",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Thermal Emissivity of Collector Surface",0,"",0,1,"",""))
        self.InsertField(FieldReal(self,"Solar Absorbtivity of Collector Surface",0,"",0,1,"",""))
        self.InsertField(FieldReal(self,"Effective Overall Height of Collector",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Effective Gap Thickness of Plenum Behind Collector",0,("if corrugated, use average depth","Units: m",),"","",0.,""))
        self.InsertField(FieldReal(self,"Effective Cross Section Area of Plenum Behind Collector",0,("if corrugated, use average depth","Units: m2",),"","",0,""))
        self.InsertField(FieldChoice(self,"Hole Layout Pattern for Pitch","","",["Triangle","Square",]))
        self.InsertField(FieldChoice(self,"Heat Exchange Effectiveness Correlation","","",["Kutscher1994","VanDeckerHollandsBrunger2001",]))
        self.InsertField(FieldReal(self,"Ratio of Actual Collector Surface Area to Projected Surface Area","1.0",("This parameter is used to help account for corrugations in the collector","Units: dimensionless",),1.0,2.0,"",""))
        self.InsertField(FieldChoice(self,"Roughness of Collector","","",["VeryRough","Rough","MediumRough","MediumSmooth","Smooth","VerySmooth",]))
        self.InsertField(FieldReal(self,"Collector Thickness",0,("Collector thickness is not required for Kutscher correlation","Collector thickness is required for Van Decker et al. correlation","Units: m",),0.0005,0.007,"",""))
        self.InsertField(FieldReal(self,"Effectiveness for Perforations with Respect to Wind","0.25",("Cv","Units: dimensionless",),"",1.5,0,""))
        self.InsertField(FieldReal(self,"Discharge Coefficient for Openings with Respect to Buoyancy Driven Flow","0.65",("Cd","Units: dimensionless",),"",1.5,0.0,""))
        self.InsertField(FieldObjectlist(self,"Surface 1 Name","","","AllShadingAndHTSurfNames"))


        self.addReference("UTSCNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Solar Collectors") 
        self.setExtensible(1)
        self.setClassnameIDD("SolarCollector:UnglazedTranspired")





class SolarCollector_UnglazedTranspired_Multisystem(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Solar Collector Name","",("quad-tuples of inlet, outlet, control, and zone nodes","for multiple different outdoor air systems attached to same collector","Enter the name of a SolarCollector:UnglazedTranspired object.","",),"UTSCNames"))
        self.InsertField(FieldText(self,"Outdoor Air System 1 Collector Inlet Node","",""))
        self.InsertField(FieldText(self,"Outdoor Air System 1 Collector Outlet Node","",""))
        self.InsertField(FieldText(self,"Outdoor Air System 1 Mixed Air Node","",""))
        self.InsertField(FieldText(self,"Outdoor Air System 1 Zone Node","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(4)
        self.setClassnameIDD("SolarCollector:UnglazedTranspired:Multisystem")





class Boiler_HotWater(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline",]))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal Thermal Efficiency",0,("Based on the higher heating value of fuel.","",),"",1.0,0.0,""))
        self.InsertField(FieldObjectlist(self,"Normalized Boiler Efficiency Curve Name","",("Linear, Quadratic and Cubic efficiency curves are solely a function of PLR.","All other efficiency curve types are a function of PLR and boiler outlet water temperature.","Linear = C1 + C2*PLR","Quadratic = C1 + C2*PLR + C3*PLR^2","Cubic = C1 + C2*PLR + C3*PLR^2 + C4*PLR^3","Biquadratic = C1 + C2*PLR + C3*PLR^2 + C4*T + C5*T^2 + C6*PLR*T","QuadraticLinear = C1 + C2*PLR + C3*PLR^2 + (C4 + C5*PLR + C6*PLR^2)*T","BiCubic = C1+C2*PLR+C3*PLR^2+C4*T+C5*T^2+C6*PLR*T+C7*PLR^3+C8*T^3+C9*PLR^2*T+C10*PLR*T^2","TriQuadratic curves are not allowed.","PLR = part-load ratio","T = boiler outlet water temperature.","",),"AllCurves"))
        self.InsertField(FieldReal(self,"Design Water Outlet Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio","1.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio","1.0","",0.0,"","",""))
        self.InsertField(FieldText(self,"Boiler Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Boiler Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Water Outlet Upper Temperature Limit","99.9","","","","",""))
        self.InsertField(FieldChoice(self,"Boiler Flow Mode","VariableFlow",("Sets this boiler to either a variable or constant flow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Parasitic Electric Load",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This boiler model is an adaptation of the empirical model from the Building","Loads and System Thermodynamics (BLAST) program.  Boiler performance","curves are generated by fitting catalog data to polynomial equations.","A constant efficiency boiler may be modeled by leaving the normalized","boiler efficiency curve name input blank.",))
        self.setRequired(False)
        self.setMinfields(11)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Boiler:HotWater")





class Boiler_Steam(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline",]))
        self.InsertField(FieldReal(self,"Maximum Operating Pressure",0,"","","","",""))
        self.InsertField(FieldReal(self,"Theoretical Efficiency",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Design Outlet Steam Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Fuel Use Function of Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Fuel Use Function of Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Fuel Use Function of Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Steam Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This boiler model is an adaptation of the empirical model from the Building","Loads and System Thermodynamics (BLAST) program.  Boiler performance","curves are generated by fitting catalog data to third order","polynomial equations.  A constant efficiency boiler is modeled by setting","the fuel use coefficients as follows: N9=1, N10=0, N11=0",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Boiler:Steam")





class Boiler_HotWater_SPARK(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline",]))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Theoretical Efficiency",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Design Water Outlet Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Fuel Use Function of Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Fuel Use Function of Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Fuel Use Function of Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Water Outlet Temperature Upper Limit",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Boiler Flow Mode","VariableFlow",("Sets this Boiler to either a Variable or ConstantFlow Simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Parasitic Electric Load",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This boiler model is an adaptation of the empirical model from the Building","Loads and System Thermodynamics (BLAST) program.  Boiler performance","curves are generated by fitting catalog data to third order","polynomial equations.  A constant efficiency boiler is modeled by setting","the fuel use coefficients as follows: N9=1, N10=0, N11=0",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Boiler:HotWater:SPARK")





class Chiller_Electric_EIR(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Reference Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Reference COP",0,("Efficiency of the chiller compressor (cooling output/compressor energy input).","Condenser fan power should not be included here.","Units: W/W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Reference Leaving Chilled Water Temperature","6.67","","","","",""))
        self.InsertField(FieldReal(self,"Reference Entering Condenser Fluid Temperature","29.4","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Reference Chilled Water Flow Rate",0,"","","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Reference Condenser Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Cooling Capacity Function of Temperature Curve Name","",("Cooling capacity as a function of CW supply temp and entering condenser temp","curve = a + b*CWS + c*CWS**2 + d*ECT + e*ECT**2 + f*CWS*ECT","CWS = supply (leaving) chilled water temperature(C)","ECT = entering condenser fluid temperature(C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Electric Input to Cooling Output Ratio Function of Temperature Curve Name","",("Electric Input Ratio (EIR) as a function of temperature","EIR = 1/COP","curve = a + b*CWS + c*CWS**2 + d*ECT + e*ECT**2 + f*CWS*ECT","CWS = supply (leaving) chilled water temperature(C)","ECT = entering condenser fluid temperature(C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name","",("Electric Input Ratio (EIR) as a function of Part Load Ratio (PLR)","EIR = 1/COP","quadratic curve = a + b*PLR + c*PLR**2","PLR = part load ratio (cooling load/steady-state capacity)","",),"QuadraticCurves"))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio","0.1",("Part load ratio below which the chiller starts cycling on/off to meet the load.","Must be less than or equal to Maximum Part Load Ratio.","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio","1.0",("Maximum allowable part load ratio. Must be greater than or equal to Minimum Part Load Ratio.","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio","1.0",("Optimum part load ratio where the chiller is most efficient.","Must be greater than or equal to the Minimum Part Load Ratio","and less than or equal to the Maximum Part Load Ratio.","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Unloading Ratio","0.2",("Part load ratio where the chiller can no longer unload and false loading begins.","Minimum unloading ratio must be greater than or equal to the Minimum Part Load Ratio","and less than or equal to the Maximum Part Load Ratio.","",),0.0,"","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",("Not required if air-cooled or evaporativly-cooled","",)))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",("Not required if air-cooled or evaporatively-cooled","",)))
        self.InsertField(FieldChoice(self,"Condenser Type","WaterCooled","",["AirCooled","WaterCooled","EvaporativelyCooled",]))
        self.InsertField(FieldReal(self,"Condenser Fan Power Ratio","0.0",("Use for air-cooled or evaporatively-cooled condensers.","Ratio of condenser fan power to reference chiller capacity","Units: W/W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Compressor Motor Efficiency","1.0",("Fraction of compressor electrical energy that must be rejected by the condenser.","Enter 1.0 or leave this field blank for a hermetic compressor.","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Leaving Chilled Water Lower Temperature Limit","2.0","","","","",""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","ConstantFlow",("Sets chilled water flow rate to either constant or variable.","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("If non-zero, then the heat recovery inlet and outlet node names must be entered.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Heat Recovery Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This chiller model is the empirical model from the DOE-2 building Energy","simulation program. Chiller performance at off-reference conditions is modeled","using three polynomial equations. Three curves objects are required.",))
        self.setRequired(False)
        self.setMinfields(23)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:Electric:EIR")





class Chiller_Electric_ReformulatedEIR(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Reference Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Reference COP",0,("Efficiency of the chiller compressor (cooling output/compressor energy input).","Condenser fan power should not be included here.","Units: W/W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Reference Leaving Chilled Water Temperature","6.67","","","","",""))
        self.InsertField(FieldReal(self,"Reference Leaving Condenser Water Temperature","35.0","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Reference Chilled Water Flow Rate",0,"","","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Reference Condenser Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Cooling Capacity Function of Temperature Curve Name","",("Cooling capacity as a function of supply (leaving) chilled water temperature","and leaving condenser fluid temperature","curve = a + b*CWS + c*CWS**2 + d*LCT + e*LCT**2 + f*CWS*LCT","CWS = supply (leaving) chilled water temperature(C)","LCT = leaving condenser fluid temperature(C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Electric Input to Cooling Output Ratio Function of Temperature Curve Name","",("Electric Input Ratio (EIR) as a function of supply (leaving) chilled water temperature","and leaving condenser fluid temperature.   EIR = 1/COP.","curve = a + b*CWS + c*CWS**2 + d*LCT + e*LCT**2 + f*CWS*LCT","CWS = supply (leaving) chilled water temperature(C)","LCT = leaving condenser fluid temperature(C)","",),"BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name","",("Electric Input Ratio (EIR) as a function of Part Load Ratio (PLR)","EIR = 1/COP","quadratic curve = a + b*LCT + c*LCT**2 + d*PLR + e*PLR**2 + f*LCT*PLR + g*0 + h*PLR**3","+ i*0 + j*0","PLR = part load ratio (cooling load/steady-state capacity)","LCT = leaving condenser fluid temperature(C)","",),"BicubicCurves"))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio","0.1",("Part load ratio below which the chiller starts cycling on/off to meet the load.","Must be less than or equal to Maximum Part Load Ratio.","",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio","1.0",("Maximum allowable part load ratio. Must be greater than or equal to Minimum Part Load Ratio.","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio","1.0",("Optimum part load ratio where the chiller is most efficient.","Must be greater than or equal to the Minimum Part Load Ratio","and less than or equal to the Maximum Part Load Ratio.","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Unloading Ratio","0.2",("Part load ratio where the chiller can no longer unload and false loading begins.","Minimum unloading ratio must be greater than or equal to the Minimum Part Load Ratio","and less than or equal to the Maximum Part Load Ratio.","",),0.0,"","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Compressor Motor Efficiency","1.0",("Fraction of compressor electrical energy that must be rejected by the condenser.","Enter 1.0 or leave this field blank for a hermetic compressor.","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Leaving Chilled Water Lower Temperature Limit","2.0","","","","",""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode Type","ConstantFlow",("Sets chilled water flow rate to either constant or variable.","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("If non-zero, then the heat recovery inlet and outlet node names must be entered.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Heat Recovery Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This chiller model is an empirical model, a reformulated version of Chiller:Electric:EIR","where the performance is a function of condenser leaving fluid Temperature instead of","condenser entering fluid Temperature. Chiller performance at off-reference conditions is","modeled using three polynomial equations. Three curve objects are required.",))
        self.setRequired(False)
        self.setMinfields(21)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:Electric:ReformulatedEIR")





class Chiller_Electric(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","WaterCooled","EvaporativelyCooled",]))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal COP",0,"","","",0.0,""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Condenser Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Rise Coefficient",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Chilled Water Outlet Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Chilled Water Flow Rate",0,(" For variable volume this is the maximum flow & for constant flow this is the flow.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Condenser Water Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Outlet Temperature Lower Limit",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("If non-zero, then the heat recovery inlet and outlet node names must be entered.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Heat Recovery Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This chiller model is the empirical model from the Building Loads","and System Thermodynamics (BLAST) program.  Chiller performance","curves are generated by fitting catalog data to third order","polynomial equations.  Three sets of coefficients are required.",))
        self.setRequired(False)
        self.setMinfields(27)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:Electric")





class Chiller_Electric_SPARK(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","WaterCooled","EvaporativelyCooled",]))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Refrigerant Type","Refrigerant22","",["Refrigerant12","Refrigerant134a","Refrigerant114","Refrigerant22","Refrigerant502","Refrigerant717",]))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Minimum Cooling Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Cooling Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Cooling Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Chilled Water Flow Rate",0,(" For variable volume this is the maximum flow and for constant flow this is the flow.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Condenser Water Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Condenser Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Compressor Electromechanical Loss Factor","0.0",("This part of the electromechanical losses is proportional to the isentropic power","",),"","","",""))
        self.InsertField(FieldReal(self,"Compressor Electromechanical Losses Contant Term","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Compressor Clearance Factor","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Evaporator Heat Transfer Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Condenser Heat Transfer Coefficient",0,"","","","",""))


        self.insertMemo(("This chiller model is the pissim1 model in the primary ASHRAE toolkit","with the addition of a control law that adapts the flow rate","through the compressor to meet the requested load.",))
        self.setRequired(False)
        self.setMinfields(19)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:Electric:SPARK")





class Chiller_Absorption_Indirect(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Pumping Power",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Condenser Inlet Temperature","30.0",("Used only when condenser flow rate is autosized.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Condenser Inlet Temperature Lower Limit","15.0",("Provides warnings when entering condenser temperature is below minimum.","Capacity is not adjusted when entering condenser temperature is below minimum.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Outlet Temperature Lower Limit","5.0",("Capacity is adjusted when leaving chilled water temperature is below minimum.","Units: C",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Chilled Water Flow Rate",0,("For variable flow this is the max flow & for constant flow this is the flow.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Condenser Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldObjectlist(self,"Generator Heat Input Function of Part Load Ratio Curve Name","","","QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Pump Electric Input Function of Part Load Ratio Curve Name","","","QuadraticCubicCurves"))
        self.InsertField(FieldText(self,"Generator Inlet Node Name","",("Enter the generator inlet node name which connects this chiller to a","steam or hot water plant, otherwise leave this field blank.","Generator nodes are used to model heat input to the chiller.","",)))
        self.InsertField(FieldText(self,"Generator Outlet Node Name","",("Enter the generator outlet node name which connects this chiller to a","steam or hot water plant, otherwise leave this field blank.","Generator nodes are used to model heat input to the chiller.","",)))
        self.InsertField(FieldObjectlist(self,"Capacity Correction Function of Condenser Temperature Curve Name","",("Curve which shows the change in normailized capacity to changes in condenser temperature.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Capacity Correction Function of Chilled Water Temperature Curve Name","",("Curve which shows the change in normailized capacity to changes in leaving chilled water temperature.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Capacity Correction Function of Generator Temperature Curve Name","",("Used when generator fluid type is hot water","Curve which shows the change in normailized capacity to changes in generator temperature.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Generator Heat Input Correction Function of Condenser Temperature Curve Name","",("Curve which shows the change in normailized heat input to changes in condenser temperature.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Generator Heat Input Correction Function of Chilled Water Temperature Curve Name","",("Curve which shows the change in normailized heat input to changes in leaving chilled water temperature.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldChoice(self,"Generator Heat Source Type","Steam",("This field should be specified as steam or left blank if generator inlet/outlet nodes","are not used.","",),["HotWater","Steam",]))
        self.InsertField(FieldRealAutocalculate(self,"Design Generator Fluid Flow Rate",0,(" For variable flow this is the max flow and for constant flow this is the flow.","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Temperature Lower Limit Generator Inlet","0.0",("Provides warnings when entering generator temperature is below minimum.","Capacity is not adjusted when entering generator temperature is below minimum.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Degree of Subcooling in Steam Generator","1.0",("This field is not used when the generator inlet/outlet nodes are not specified or","the generator is connected to a hot water loop.","Units: C",),0.0,20.0,"",""))
        self.InsertField(FieldReal(self,"Degree of Subcooling in Steam Condensate Loop","0.0",("This field is not used when the generator inlet/outlet nodes are not specified or","the generator is connected to a hot water loop.","Units: C",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This indirect absorption chiller model is an enhanced model from the","Building Loads and System Thermodynamics (BLAST) program.  Chiller","performance curves are generated by fitting catalog data to third order","polynomial equations. The chiller capacity is a function of condenser,","chilled water, and generator temperatures. The heat input is a function","of part-load ratio, condenser temperature, and chilled water temperature.",))
        self.setRequired(False)
        self.setMinfields(17)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:Absorption:Indirect")





class Chiller_Absorption(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Pumping Power",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Condenser Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Chilled Water Flow Rate",0,(" For variable volume this is the max flow & for constant flow this is the flow.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Condenser Water Flow Rate",0,(" The steam use coefficients below specify the"," steam use as a fraction of chiller operating capacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Coefficient 1 of the Steam Use Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of the Steam Use Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of the Steam Use Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of the Pump Electric Use Part Load Ratio Curve",0,(" The pump electric use coefficients specify the"," pumping power as a Fraction of Nominal pumping power","",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of the Pump Electric Use Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of the Pump Electric Use Part Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Outlet Temperature Lower Limit",0,"","","","",""))
        self.InsertField(FieldText(self,"Generator Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Generator Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldChoice(self,"Generator Fluid Type","Steam",("This field should be specified as Steam or left blank if generator inlet/outlet nodes are not used.","",),["Steam","HotWater",]))
        self.InsertField(FieldRealAutocalculate(self,"Design Generator Fluid Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Degree of Subcooling in Steam Generator","1.0",("This field is not used when the generator inlet/outlet nodes are not specified or","the generator is connected to a hot water loop.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This indirect absorption chiller model is the empirical model from the","Building Loads and System Thermodynamics (BLAST) program.  Chiller","performance curves are generated by fitting catalog data to third order","polynomial equations.  Two sets of coefficients are required.",))
        self.setRequired(False)
        self.setMinfields(23)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:Absorption")





class Chiller_ConstantCOP(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal COP",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Chilled Water Flow Rate",0,(" For variable volume this is the maximum flow and for constant flow this is the flow.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Condenser Water Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","WaterCooled","EvaporativelyCooled",]))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This constant COP chiller model provides a means of quickly specifying a","Chiller where performance data is not available.",))
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:ConstantCOP")





class Chiller_EngineDriven(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","WaterCooled","EvaporativelyCooled",]))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal COP",0,("Nominal Refrigeration Cycle COP","",),"","",0.0,""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Condenser Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Rise Coefficient",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Chilled Water Outlet Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Chilled Water Flow Rate",0,(" For variable volume this is the maximum flow and for constant flow this is the flow.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Condenser Water Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Outlet Temperature Lower Limit",0,(" Special EngineDriven Chiller Parameters Below","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Fuel Use Curve Name","",("Curve is a function of Part Load Ratio (PLR)","curve = a + b*PLR + c*PLR**2","PLR = Ratio of evaporator heat transfer rate to nominal capacity","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Jacket Heat Recovery Curve Name","",("Curve is a function of Part Load Ratio (PLR)","curve = a + b*PLR + c*PLR**2","PLR = Ratio of evaporator heat transfer rate to nominal capacity","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Lube Heat Recovery Curve Name","",("Curve is a function of Part Load Ratio (PLR)","curve = a + b*PLR + c*PLR**2","PLR = Ratio of evaporator heat transfer rate to nominal capacity","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Total Exhaust Energy Curve Name","",("Curve is a function of Part Load Ratio (PLR)","curve = a + b*PLR + c*PLR**2","PLR = Ratio of evaporator heat transfer rate to nominal capacity","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Exhaust Temperature Curve Name","",("Curve is a function of Part Load Ratio (PLR)","curve = a + b*PLR + c*PLR**2","PLR = Ratio of evaporator heat transfer rate to nominal capacity","",),"QuadraticCurves"))
        self.InsertField(FieldReal(self,"Coefficient 1 of U-Factor Times Area Curve",0,("curve = C1 * (nominal capacity)^C2","",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of U-Factor Times Area Curve",0,("curve = C1 * (nominal capacity)^C2","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Exhaust Flow per Unit of Power Output",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Minimum Exhaust Temperature",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","","",["NaturalGas","PropaneGas","Diesel","Gasoline","FuelOil#1","FuelOil#2",]))
        self.InsertField(FieldReal(self,"Fuel Higher Heating Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("If non-zero, then the heat recovery inlet and outlet node names must be entered.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Heat Recovery Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldReal(self,"Maximum Temperature for Heat Recovery at Heat Recovery Outlet Node","60.0","",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This chiller model is the empirical model from the Building Loads","and System Thermodynamics (BLAST) program.  Chiller performance","curves are generated by fitting catalog data to third order","polynomial equations.  Three sets of coefficients are required.",))
        self.setRequired(False)
        self.setMinfields(43)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:EngineDriven")





class Chiller_CombustionTurbine(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled","",["AirCooled","WaterCooled","EvaporativelyCooled",]))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal COP",0,"","","",0.0,""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Design Condenser Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Rise Coefficient",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Chilled Water Outlet Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Chilled Water Flow Rate",0,(" For variable volume this is the max flow & for constant flow this is the flow.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Condenser Water Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Capacity Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Power Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Full Load Ratio Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Chilled Water Outlet Temperature Lower Limit",0,(" Special Gas Turbine Chiller Parameters Below","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Fuel Input Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Fuel Input Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Fuel Input Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Temperature Based Fuel Input Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Temperature Based Fuel Input Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Temperature Based Fuel Input Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Exhaust Flow Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Exhaust Flow Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Exhaust Flow Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Exhaust Gas Temperature Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Exhaust Gas Temperature Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Exhaust Gas Temperature Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Temperature Based Exhaust Gas Temperature Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Temperature Based Exhaust Gas Temperature Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Temperature Based Exhaust Gas Temperature Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of Recovery Lube Heat Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of Recovery Lube Heat Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3 of Recovery Lube Heat Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1 of U-Factor Times Area Curve",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of U-Factor Times Area Curve",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Gas Turbine Engine Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Exhaust Flow per Unit of Power Output",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Steam Saturation Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fuel Higher Heating Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("If non-zero, then the heat recovery inlet and outlet node names must be entered.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Heat Recovery Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldChoice(self,"Fuel Type","NaturalGas","",["NaturalGas","PropaneGas","Diesel","Gasoline","FuelOil#1","FuelOil#2",]))
        self.InsertField(FieldReal(self,"Heat Recovery Maximum Temperature","80.0","",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This chiller model is the empirical model from the Building Loads","and System Thermodynamics (BLAST) program.  Chiller performance","curves are generated by fitting catalog data to third order","polynomial equations.  Three sets of coefficients are required.",))
        self.setRequired(False)
        self.setMinfields(56)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("Chiller:CombustionTurbine")





class ChillerHeater_Absorption_DirectFired(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Nominal Cooling Capacity","Autosize","","","","",""))
        self.InsertField(FieldReal(self,"Heating to Cooling Capacity Ratio"," 0.8",("A positive fraction that represents the ratio of the","heating capacity divided by the cooling capacity at rated conditions.","",), 0,"","",""))
        self.InsertField(FieldReal(self,"Fuel Input to Cooling Output Ratio"," 0.97",("The positive fraction that represents the ratio of the","instantaneous fuel used divided by the cooling capacity at rated conditions.","",),"","",0,""))
        self.InsertField(FieldReal(self,"Fuel Input to Heating Output Ratio"," 1.25",("The positive fraction that represents the ratio of the","instantaneous fuel used divided by the nominal heating capacity.","",), 0,"","",""))
        self.InsertField(FieldReal(self,"Electric Input to Cooling Output Ratio"," 0.01",("The positive fraction that represents the ratio of the","instantaneous electricity used divided by the cooling capacity at rated conditions.","If the chiller is both heating and cooling only the cooling electricity is used.","",), 0,"","",""))
        self.InsertField(FieldReal(self,"Electric Input to Heating Output Ratio"," 0",("The positive fraction that represents the ratio of the","instantaneous electricity used divided by the nominal heating capacity.","If the chiller is both heating and cooling only the cooling electricity is used.","",), 0,"","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Hot Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Hot Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio"," 0.1",("The positive fraction that represents the minimum cooling output possible when","operated continually at rated temperature conditions divided by the nominal","cooling capacity at those same conditions.  If the load on the chiller is below","this fraction the chiller will cycle.","",),"","",0,""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio"," 1.0",("The positive fraction that represents the maximum cooling output possible at","rated temperature conditions divided by the nominal cooling capacity at those","same conditions.  If greater than 1.0, the chiller is typically thought of as","capable of being overloaded.","",), 0.5,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio"," 1.0",("The positive fraction that represents the optimal cooling output at rated","temperature conditions divided by the nominal cooling capacity at those same","conditions.  It represents the most desirable operating point for the chiller.","",),"","",0,""))
        self.InsertField(FieldReal(self,"Design Entering Condenser Water Temperature","29",("The temperature of the water entering the condenser of the chiller when","operating at design conditions.  This is usually based on the temperature","delivered by the cooling tower in a water cooled application.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Design Leaving Chilled Water Temperature","7",("The temperature of the water leaving the evaporator of the chiller when","operating at design conditions also called the chilled water supply temperature","or leaving chilled water temperature.","Units: C",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Chilled Water Flow Rate","Autosize",(" For variable volume this is the max flow & for constant flow this is the flow.","Units: m3/s",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Condenser Water Flow Rate","Autosize",("The water flow rate at design conditions through the condenser.","Units: m3/s",),"","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Hot Water Flow Rate","Autosize",("The water flow rate at design conditions through the heater side.","Units: m3/s",),"","","",""))
        self.InsertField(FieldText(self,"Cooling Capacity Function of Temperature Curve Name","",("The CoolCapFT curve represents the fraction of the cooling capacity of the chiller as it","varies by temperature.  The curve is normalized so that at design conditions the","value of the curve should be 1.0.  The curve is usually a biquadratic or bilinear","curve with the input variables being the leaving chilled water temperature and either","the entering or leaving condenser water temperature.","",)))
        self.InsertField(FieldText(self,"Fuel Input to Cooling Output Ratio Function of Temperature Curve Name","",("The curve represents the fraction of the fuel input to the chiller at full load as","it varies by temperature.  The curve is normalized so that at design conditions the","value of the curve should be 1.0.  The curve is usually a biquadratic or bilinear","curve with the input variables being the leaving chilled water temperature and either","the entering or leaving condenser water temperature.","",)))
        self.InsertField(FieldText(self,"Fuel Input to Cooling Output Ratio Function of Part Load Ratio Curve Name","",("The curve represents the fraction of the fuel input to the chiller as the load on","the chiller varies but the operating temperatures remain at the design values.","The curve is normalized so that at full load the value of the curve should be 1.0.","The curve is usually linear or quadratic.","",)))
        self.InsertField(FieldText(self,"Electric Input to Cooling Output Ratio Function of Temperature Curve Name","",("The curve represents the fraction of the electricity to the chiller at full load as","it varies by temperature.  The curve is normalized so that at design conditions the","value of the curve should be 1.0.  The curve is usually a biquadratic or bilinear","curve with the input variables being the leaving chilled water temperature and either","the entering or leaving condenser water temperature.","",)))
        self.InsertField(FieldText(self,"Electric Input to Cooling Output Ratio Function of Part Load Ratio Curve Name","",("The curve represents the fraction of the electricity to the chiller as the load on","the chiller varies but the operating temperatures remain at the design values.","The curve is normalized so that at full load the value of the curve should be 1.0.","The curve is usually linear or quadratic.","",)))
        self.InsertField(FieldText(self,"Heating Capacity Function of Cooling Capacity Curve Name","",("The curve represents how the heating capacity of the chiller varies with cooling","capacity when the chiller is simultaeous heating and cooling.  The curve is normalized","so an input of 1.0 represents the nominal cooling capacity and an output of 1.0","represents the full heating capacity (see the Heating to cooling capacity ratio input)","The curve is usually linear or quadratic.","",)))
        self.InsertField(FieldText(self,"Fuel Input to Heat Output Ratio During Heating Only Operation","",("When the chiller is operating as only a heater, this curve is used to represent the","fraction of fuel used as the heating load varies.  It is normalized so that a value","of 1.0 is the full heating capacity.  The curve is usually linear or quadratic and","will probably be similar to a boiler curve for most chillers.","",)))
        self.InsertField(FieldChoice(self,"Temperature Curve Input Variable","EnteringCondenser",("Sets the second independent variable in the three temperature dependent performance","curves to either the leaving or entering condenser water temperature.  Manufacturers","express the performance of their chillers using either the leaving condenser water","temperature (to the tower) or the entering condenser water temperature (from the tower).","",),["LeavingCondenser","EnteringCondenser",]))
        self.InsertField(FieldChoice(self,"Condenser Type","WaterCooled",("The condenser can either be air cooled or connected to a cooling tower.","",),["AirCooled","WaterCooled",]))
        self.InsertField(FieldReal(self,"Chilled Water Temperature Lower Limit","2.0",("The chilled water supply temperature below which the chiller","will shut off.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Fuel Higher Heating Value","0.0",("Not currently used.","Units: kJ/kg",),"","","",""))
        self.InsertField(FieldChoice(self,"Chiller Flow Mode","VariableFlow",("Sets this chiller to a VariableFlow or ConstantFlow simulation","",),["ConstantFlow","VariableFlow",]))
        self.InsertField(FieldChoice(self,"Fuel Type","NaturalGas","",["NaturalGas","PropaneGas","Diesel","Gasoline","FuelOil#1","FuelOil#2",]))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("Direct fired gas absorption chiller-heater using performance curves similar to DOE-2",))
        self.setRequired(False)
        self.setMinfields(35)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("ChillerHeater:Absorption:DirectFired")





class HeatPump_WaterToWater_EquationFit_Heating(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Rated Load Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Source Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Heating Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Heating Power Consumption",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Capacity Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Compressor Power Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Compressor Power Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Compressor Power Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Compressor Power Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heating Compressor Power Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cycle Time",".1","","","",0.016,""))


        self.insertMemo(("simple water-water hp curve-fit model",))
        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatPump:WaterToWater:EquationFit:Heating")





class HeatPump_WaterToWater_EquationFit_Cooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Rated Load Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Source Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Cooling Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Cooling Power Consumption",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Cooling Capacity Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Capacity Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Capacity Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Capacity Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Capacity Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Compressor Power Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Compressor Power Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Compressor Power Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Compressor Power Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cooling Compressor Power Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cycle Time",".1","","","",0.016,""))


        self.insertMemo(("simple water-water heatpump curve-fit model",))
        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatPump:WaterToWater:EquationFit:Cooling")





class HeatPump_WaterToWater_ParameterEstimation_Cooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Nominal COP",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Nominal Capacity",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Source Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Load Side Heat Transfer Coefficient",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Source Side Heat Transfer Coefficient",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Piston Displacement",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Compressor Clearance Factor",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Compressor Suction and Discharge Pressure Drop",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Superheating",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Constant Part of Electromechanical Power Losses",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Loss Factor",0,("Used to define electromechanical loss that is proportional","to the theoretical power %","",),"","",0,""))
        self.InsertField(FieldReal(self,"High Pressure Cut Off","500000000","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Low Pressure Cut Off","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Cycle Time",".1","","","",0.016,""))


        self.insertMemo(("OSU parameter estimation model",))
        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatPump:WaterToWater:ParameterEstimation:Cooling")





class HeatPump_WaterToWater_ParameterEstimation_Heating(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Load Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Nominal COP",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Nominal Capacity",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Side Flow Rate",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Source Side Flow Rate",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Load Side Heat Transfer Coefficient",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Source Side Heat Transfer Coefficient",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Piston Displacement",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Compressor Clearance Factor",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Compressor Suction and Discharge Pressure Drop",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Superheating",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Constant Part of Electromechanical Power Losses",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Loss Factor",0,("Used to define electromechanical loss that is proportional","to the theoretical power %","",),"","",0,""))
        self.InsertField(FieldReal(self,"High Pressure Cut Off","500000000","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Low Pressure Cut Off","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Cycle Time",".1","","","",0.016,""))


        self.insertMemo(("OSU parameter estimation model",))
        self.setRequired(False)
        self.setMinfields(20)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatPump:WaterToWater:ParameterEstimation:Heating")





class DistrictCooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Nominal Capacity",0,"",0.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant Heating and Cooling Equipment") 
        self.setExtensible(-1)
        self.setClassnameIDD("DistrictCooling")





class DistrictHeating(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Hot Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Hot Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Nominal Capacity",0,"",0.0,"","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("DistrictHeating")





class CoolingTower_SingleSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Tower Name","",)))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",("Name of tower water inlet node","",)))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",("Name of tower water outlet node","",)))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,("Leave field blank if tower performance input method is NominalCapacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Fan Power at Design Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"U-Factor Times Area Value at Design Air Flow Rate",0,("Leave field blank if tower performance input method is NominalCapacity","Units: W/K",),"",2100000.0,0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Air Flow Rate in Free Convection Regime","0.0","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"U-Factor Times Area Value at Free Convection Air Flow Rate","0.0","",0.0,300000.0,"",""))
        self.InsertField(FieldChoice(self,"Performance Input Method","NominalCapacity",("User can define tower thermal performance by specifying the tower UA","and the Design Air Flow Rate, or by specifying the tower nominal capacity","",),["UFactorTimesAreaAndDesignWaterFlowRate","NominalCapacity",]))
        self.InsertField(FieldReal(self,"Nominal Capacity",0,("Nominal tower capacity with entering water at 35C (95F), leaving water at","29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature and 35C (95F)","dry-bulb temperature. Design water flow rate assumed to be 5.382E-8 m3/s per watt","(3 gpm/ton). Nominal tower capacity times (1.25) gives the actual tower","heat rejection at these operating conditions.","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Free Convection Capacity",0,("Tower capacity in free convection regime with entering water at 35C (95F),","leaving water at 29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature","and 35C (95F) dry-bulb temperature. Design water flow rate assumed to be","5.382E-8 m3/s per watt of nominal tower capacity (3 gpm/ton). Tower free","convection capacity times (1.25) gives the actual tower heat rejection at these","operating conditions.","Units: W",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Evaporation Loss Mode","","",["LossFactor","SaturatedExit",]))
        self.InsertField(FieldReal(self,"Evaporation Loss Factor","0.2",("Rate of water evaporation from the cooling tower and lost to the outdoor air [%/K]","Evaporation loss is calculated as percentage of the circulating condenser water rate","Value entered here is percent-per-degree K of temperature drop in the condenser water","Typical values are from 0.15 to 0.27 [%/K].","Units: percent/K",),"","","",""))
        self.InsertField(FieldReal(self,"Drift Loss Percent","0.008",("Rate of drift loss as a percentage of circulating condenser water flow rate","Typical values are between 0.002 and 0.2% The default value is 0.008%","Units: percent",),"","","",""))
        self.InsertField(FieldChoice(self,"Blowdown Calculation Mode","","",["ConcentrationRatio","ScheduledRate",]))
        self.InsertField(FieldReal(self,"Blowdown Concentration Ratio","3.0",("Characterizes the rate of blowdown in the cooling tower.","Blowdown is water intentionally drained from the tower in order to offset the build up","of solids in the water that would otherwise occur because of evaporation.","Ratio of solids in the blowdown water to solids in the make up water.","Typical values for tower operation are 3 to 5.  The default value is 3.","",),2.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Blowdown Makeup Water Usage Schedule Name","",("Makeup water usage due to blowdown results from occasionally draining a small amount","of water in the tower basin to purge scale or other contaminants to reduce their","concentration in order to maintain an acceptable level of water quality.","Schedule values should reflect water usage in m3/s.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldText(self,"Outdoor Air Inlet Node Name","",("Enter the name of an outdoor air node","",)))
        self.InsertField(FieldChoice(self,"Capacity Control","FanCycling","",["FanCycling","FluidBypass",]))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This tower model is based on Merkel's theory, which is also the basis","for the tower model in ASHRAE's HVAC1 Toolkit. The closed-circuit cooling tower","is modeled as a counter flow heat exchanger with a single-speed fan drawing air","through the tower (induced-draft configuration).","Added fluid bypass as an additional capacity control. 8/2008.",))
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoolingTower:SingleSpeed")





class CoolingTower_TwoSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Tower Name","",)))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",("Name of tower Water Inlet Node","",)))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",("Name of tower Water Outlet Node","",)))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,("Leave field blank if Tower Performance Input Method is NominalCapacity","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Air Flow Rate at High Fan Speed",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Fan Power at High Fan Speed",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"U-Factor Times Area Value at High Fan Speed",0,("Leave field blank if Tower Performance Input Method is NominalCapacity","Units: W/K",),"",2100000.0,0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Air Flow Rate at Low Fan Speed",0,("Low speed air flow rate must be less than high speed air flow rate","Low speed air flow rate must be greater than free convection air flow rate","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Fan Power at Low Fan Speed",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"U-Factor Times Area Value at Low Fan Speed",0,("Leave field blank if tower Performance Input Method is NominalCapacity","Low speed tower UA must be less than high speed tower UA","Low speed tower UA must be greater than free convection tower UA","Units: W/K",),"",300000.0,0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Air Flow Rate in Free Convection Regime","0.0","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"U-Factor Times Area Value at Free Convection Air Flow Rate","0.0",("Leave field blank if Tower Performance Input Method is NominalCapacity","Units: W/K",),0.0,300000.0,"",""))
        self.InsertField(FieldChoice(self,"Performance Input Method","NominalCapacity",("User can define tower thermal performance by specifying the tower U-factor times area","and the design air flow rates, or by specifying the tower nominal capacity","",),["UFactorTimesAreaAndDesignWaterFlowRate","NominalCapacity",]))
        self.InsertField(FieldReal(self,"High Speed Nominal Capacity",0,("Nominal tower capacity with entering water at 35C (95F), leaving water at","29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature and 35C (95F)","dry-bulb temperature, with the tower fan operating at high speed. Design water","flow rate assumed to be 5.382E-8 m3/s per watt(3 gpm/ton). Nominal tower capacity","times (1.25) gives the actual tower heat rejection at these operating conditions.","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Low Speed Nominal Capacity",0,("Nominal tower capacity with entering water at 35C (95F), leaving water at","29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature and 35C (95F)","dry-bulb temperature, with the tower fan operating at low speed. Design water flow","rate assumed to be 5.382E-8 m3/s per watt of tower high-speed nominal capacity","(3 gpm/ton). Nominal tower capacity times (1.25) gives the actual tower heat","rejection at these operating conditions.","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Free Convection Capacity",0,("Tower capacity in free convection regime with entering water at 35C (95F),","leaving water at 29.44C (85F), entering air at 25.56C (78F) wet-bulb temperature","and 35C (95F) dry-bulb temperature. Design water flow rate assumed to be","5.382E-8 m3/s per watt of tower high-speed nominal capacity (3 gpm/ton). Tower","free convection capacity times (1.25) gives the actual tower heat rejection at","these operating conditions.","Units: W",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Evaporation Loss Mode","","",["LossFactor","SaturatedExit",]))
        self.InsertField(FieldReal(self,"Evaporation Loss Factor","0.2",("Rate of water evaporated from the cooling tower and lost to the outdoor air [%/K]","Evaporation loss is calculated as percentage of the circulating condenser water rate","Value entered here is percent-per-degree K of temperature drop in the condenser water","Typical values are from 0.15 to 0.27 [%/K].","Units: percent/K",),"","","",""))
        self.InsertField(FieldReal(self,"Drift Loss Percent","0.008",("Rate of drift loss as a percentage of circulating condenser water flow rate","Typical values are between 0.002 and 0.2% The default value is 0.008%","Units: percent",),"","","",""))
        self.InsertField(FieldChoice(self,"Blowdown Calculation Mode","","",["ConcentrationRatio","ScheduledRate",]))
        self.InsertField(FieldReal(self,"Blowdown Concentration Ratio","3.0",("Characterizes the rate of blowdown in the cooling tower.","Blowdown is water intentionally drained from the tower in order to offset the build up","of solids in the water that would otherwise occur because of evaporation.","Ratio of solids in the blowdown water to solids in the make up water.","Typical values for tower operation are 3 to 5.  The default value is 3.","",),2.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Blowdown Makeup Water Usage Schedule Name","",("Makeup water usage due to blowdown results from occasionally draining some amount","of water in the tower basin to purge scale or other contaminants to reduce their","concentration in order to maintain an acceptable level of water quality.","Schedule values should reflect water usage in m3/s.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldText(self,"Outdoor Air Inlet Node Name","",("Enter the name of an outdoor air node","",)))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This tower model is based on Merkel's theory, which is also the basis","for the tower model in ASHRAE's HVAC1 Toolkit. The closed-circuit cooling tower","is modeled as a counter flow heat exchanger with a two-speed fan drawing air","through the tower (induced-draft configuration).",))
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoolingTower:TwoSpeed")





class CoolingTower_VariableSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Tower Name","",)))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",("Name of tower water inlet node","",)))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",("Name of tower water outlet node","",)))
        self.InsertField(FieldChoice(self,"Model Type","YorkCalc",("Determines the coefficients and form of the equation for calculating","approach temperature","",),["CoolToolsCrossFlow","CoolToolsUserDefined","YorkCalc","YorkCalcUserDefined",]))
        self.InsertField(FieldObjectlist(self,"Model Coefficient Name","",("Name of the tower model coefficient object.","Used only when tower Model Type is either CoolToolsUserDefined or YorkCalcUserDefined.","",),"VariableSpeedTowerCoefficient"))
        self.InsertField(FieldReal(self,"Design Inlet Air Wet-Bulb Temperature","25.6",("Enter the tower's design inlet air wet-bulb temperature","Units: C",),20.0,"","",""))
        self.InsertField(FieldReal(self,"Design Approach Temperature","3.9",("Enter the approach temperature corresponding to the design inlet air","wet-bulb temperature and design range temperature.","Design approach temp = outlet water temperature minus inlet air wet-bulb temperature","at design conditions.","Units: C",),"","",0,""))
        self.InsertField(FieldReal(self,"Design Range Temperature","5.6",("Enter the range temperature corresponding to the design inlet air","wet-bulb temperature and design approach temperature.","Design range = inlet water temperature minus outlet water temperature","at design conditions.","Units: C",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,("Water flow rate through the tower at design conditions","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Air Flow Rate",0,("Design (maximum) air flow rate through the tower","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Fan Power",0,("Enter the fan power at design (max) air flow through the tower","Standard conversion for horsepower is 1 HP = 745.7 W","Units: W",),"","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Fan Power Ratio Function of Air Flow Rate Ratio Curve Name","",("FPR = a + b*AFR + c*AFR**2 + d*AFR**3","FPR = fraction of the design fan power","AFR = fraction of the design air flow rate","If left blank, then fan power is assumed to be proportional to","(air flow rate ratio)^3","",),"CubicCurves"))
        self.InsertField(FieldReal(self,"Minimum Air Flow Rate Ratio","0.2",("Enter the minimum air flow rate ratio. This is typically determined by the variable","speed drive that controls the fan motor speed. Valid entries are from 0.2 to 0.5.","",),0.2,0.5,"",""))
        self.InsertField(FieldReal(self,"Fraction of Tower Capacity in Free Convection Regime","0.125",("Enter the fraction of tower capacity in the free convection regime. This is the","fraction of the tower capacity, at the current inlet air wet-bulb temperature,","that is available when the tower fan is off. Manufacturers typically estimate the","free convection capacity at approximately 10-15%. Values are entered as a fraction","and can range from 0 to 0.2.","",),0.0,0.2,"",""))
        self.InsertField(FieldReal(self,"Basin Heater Capacity","0.0",("This heater maintains the basin water temperature at the basin heater setpoint","temperature when the outdoor air temperature falls below the setpoint temperature.","The basin heater only operates when water is not flowing through the tower.","Units: W/K",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Basin Heater Setpoint Temperature","2.0",("Enter the outdoor dry-bulb temperature when the basin heater turns on","Units: C",),2.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Basin Heater Operating Schedule Name","",("Schedule values greater than 0 allow the basin heater to operate whenever the outdoor","air dry-bulb temperature is below the basin heater setpoint temperature.","If a schedule name is not entered, the basin heater is allowed to operate","throughout the entire simulation.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Evaporation Loss Mode","","",["LossFactor","SaturatedExit",]))
        self.InsertField(FieldReal(self,"Evaporation Loss Factor","0.2",("Rate of water evaporated from the cooling tower and lost to the outdoor air [%/K]","Evaporation loss is calculated as percentage of the circulating condenser water rate","Value entered here is percent-per-degree K of temperature drop in the condenser water","Typical values are from 0.15 to 0.27 [percent/K].","Units: percent/K",),"","","",""))
        self.InsertField(FieldReal(self,"Drift Loss Percent",0,("Rate of drift loss as a percentage of circulating condenser water flow rate","Typical values are between 0.002 and 0.2% The default value is 0.008%","Units: percent",),"","","",""))
        self.InsertField(FieldChoice(self,"Blowdown Calculation Mode","","",["ConcentrationRatio","ScheduledRate",]))
        self.InsertField(FieldReal(self,"Blowdown Concentration Ratio","3.0",("Characterizes the rate of blowdown in the cooling tower.","Blowdown is water intentionally drained from the tower in order to offset the build up","of solids in the water that would otherwise occur because of evaporation.","Ratio of solids in the blowdown water to solids in the make up water.","Typical values for tower operation are 3 to 5.  The default value is 3.","",),2.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Blowdown Makeup Water Usage Schedule Name","",("Makeup water usage due to blowdown results from occasionally draining a small amount","of water in the tower basin to purge scale or other contaminants to reduce their","concentration in order to maintain an acceptable level of water quality.","Schedule values should reflect water usage in m3/s.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldText(self,"Outdoor Air Inlet Node Name","",("Enter the name of an outdoor air node","",)))
        self.InsertField(FieldReal(self,"Sizing Factor","1.0",("Multiplies the autosized capacity and flow rates","",),"","",0.0,""))


        self.insertMemo(("This tower model is based on purely empirical algorithms derived from manufacturer's","performance data or field measurements. The user can select from two existing","algorithms (CoolTools or YorkCalc), or they can enter their own correlation for","approach temperature by using a variable speed tower model coefficient object.",))
        self.setRequired(False)
        self.setMinfields(15)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoolingTower:VariableSpeed")





class CoolingTowerPerformance_CoolTools(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Minimum Inlet Air Wet-Bulb Temperature",0,("Minimum valid inlet air wet-bulb temperature for this approach","temperature correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Inlet Air Wet-Bulb Temperature",0,("Maximum valid inlet air wet-bulb temperature for this approach","temperature correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Range Temperature",0,("Minimum valid range temperature for this approach temperature","correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Range Temperature",0,("Maximum valid range temperature for this approach temperature","correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Approach Temperature",0,("Minimum valid approach temperature for this correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Approach Temperature",0,("Maximum valid approach temperature for this correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Water Flow Rate Ratio",0,("Minimum valid water flow rate ratio for this approach","temperature correlation.","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Water Flow Rate Ratio",0,("Maximum valid water flow rate ratio for this approach","temperature correlation.","",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 27",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 28",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 29",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 30",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 31",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 32",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 33",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 34",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 35",0,"","","","",""))


        self.insertMemo(("This object is used to define coefficients for the approach temperature","correlation for a variable speed cooling tower when tower Model Type is","specified as CoolToolsUserDefined in the object CoolingTower:VariableSpeed.",))
        self.addReference("VariableSpeedTowerCoefficient")
        self.setRequired(False)
        self.setMinfields(44)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoolingTowerPerformance:CoolTools")





class CoolingTowerPerformance_YorkCalc(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Minimum Inlet Air Wet-Bulb Temperature",0,("Minimum valid inlet air wet-bulb temperature for this approach","temperature correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Inlet Air Wet-Bulb Temperature",0,("Maximum valid inlet air wet-bulb temperature for this approach","temperature correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Range Temperature",0,("Minimum valid range temperature for this approach temperature","correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Range Temperature",0,("Maximum valid range temperature for this approach temperature","correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Approach Temperature",0,("Minimum valid approach temperature for this correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Approach Temperature",0,("Maximum valid approach temperature for this correlation.","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Water Flow Rate Ratio",0,("Minimum valid water flow rate ratio for this approach","temperature correlation.","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Water Flow Rate Ratio",0,("Maximum valid water flow rate ratio for this approach","temperature correlation.","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Liquid to Gas Ratio",0,("Maximum liquid (water) to gas (air) ratio for this approach","temperature correlation.","",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient 27",0,"","","","",""))


        self.insertMemo(("This object is used to define coefficients for the approach temperature","correlation for a variable speed cooling tower when tower Model Type is","specified as YorkCalcUserDefined in the object CoolingTower:VariableSpeed.",))
        self.addReference("VariableSpeedTowerCoefficient")
        self.setRequired(False)
        self.setMinfields(37)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("CoolingTowerPerformance:YorkCalc")





class FluidCooler_SingleSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("fluid cooler name","",)))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",("Name of fluid cooler water inlet node","",)))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",("Name of fluid cooler water outlet node","",)))
        self.InsertField(FieldChoice(self,"Performance Input Method","NominalCapacity",("User can define fluid cooler thermal performance by specifying the fluid cooler UA","and the Design Air Flow Rate, or by specifying the fluid cooler nominal capacity","",),["UFactorTimesAreaAndDesignWaterFlowRate","NominalCapacity",]))
        self.InsertField(FieldRealAutocalculate(self,"U-factor Times Area Value at Design Air Flow Rate",0,("Leave field blank if fluid cooler Performance Input Method is NominalCapacity","Units: W/K",),"",2100000.0,0.0,""))
        self.InsertField(FieldReal(self,"Nominal Capacity",0,("Nominal fluid cooler capacity","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Design Entering Water Temperature",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Entering Air Temperature",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Entering Air Wet-bulb Temperature",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Fan Power at Design Air Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Fluid Name","water",("(water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldReal(self,"Fluid/Glycol Concentration",0,("with the rewrite of fluid properties this parameter is no longer needed","Units: percent",),0,100,"",""))
        self.InsertField(FieldText(self,"Outdoor Air Inlet Node Name","",("Enter the name of an outdoor air node","",)))


        self.insertMemo(("This fluid cooler model is based on Merkel's theory, which is also the basis","for the fluid cooler model in ASHRAE's HVAC1 Toolkit. The closed-circuit fluid cooler","is modeled as a counterflow heat exchanger with a single-speed fan drawing air","through the fluid cooler (induced-draft configuration).",))
        self.setRequired(False)
        self.setMinfields(9)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("FluidCooler:SingleSpeed")





class FluidCooler_TwoSpeed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("fluid cooler name","",)))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",("Name of fluid cooler water inlet node","",)))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",("Name of fluid cooler water outlet node","",)))
        self.InsertField(FieldChoice(self,"Performance Input Method","NominalCapacity",("User can define fluid cooler thermal performance by specifying the fluid cooler UA","and the Design Air Flow Rate, or by specifying the fluid cooler nominal capacity","",),["UFactorTimesAreaAndDesignWaterFlowRate","NominalCapacity",]))
        self.InsertField(FieldRealAutocalculate(self,"U-factor Times Area Value at High Fan Speed",0,("Leave field blank if fluid cooler Performance Input Method is NominalCapacity","Units: W/K",),"",2100000.0,0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"U-factor Times Area Value at Low Fan Speed",0,("Leave field blank if fluid cooler Performance Input Method is NominalCapacity","Low speed fluid cooler UA must be less than high speed fluid cooler UA","Low speed fluid cooler UA must be greater than free convection fluid cooler UA","Units: W/K",),"",300000.0,0.0,""))
        self.InsertField(FieldReal(self,"High-Speed Nominal Capacity",0,("Nominal fluid cooler capacity","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Low-Speed Nominal Capacity",0,("Nominal fluid cooler capacity times (1.25) gives the actual fluid cooler","heat rejection at these operating conditions.","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Design Entering Water Temperature",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Entering Air Temperature",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Entering Air Wet-bulb Temperature",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Design Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Air Flow Rate at High Fan Speed",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Fan Power at High Fan Speed",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Air Flow Rate at Low Fan Speed",0,("Low speed air flow rate must be less than high speed air flow rate","Low speed air flow rate must be greater than free convection air flow rate","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Fan Power at Low Fan Speed",0,"","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Fluid Name","water",("(water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldReal(self,"Fluid/Glycol Concentration",0,("with the rewrite of fluid properties this parameter is no longer needed","Units: percent",),0,100,"",""))
        self.InsertField(FieldText(self,"Outdoor Air Inlet Node Name","",""))


        self.insertMemo(("This fluid cooler model is based on Merkel's theory, which is also the basis","for the fluid cooler model in ASHRAE's HVAC1 Toolkit. The closed-circuit fluid cooler","is modeled as a counterflow heat exchanger with a two-speed fan drawing air","through the fluid cooler (induced-draft configuration).",))
        self.setRequired(False)
        self.setMinfields(12)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("FluidCooler:TwoSpeed")





class GroundHeatExchanger_Vertical(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Maximum Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Number of Bore Holes",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Bore Hole Length",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Bore Hole Radius",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Ground Thermal Conductivity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Ground Thermal Heat Capacity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Fluid Specific Heat",0,("same order","Units: J/kg-K",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Ground Temperature",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Design Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Grout Thermal Conductivity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Pipe Thermal Conductivity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Fluid Thermal Conductivity",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Fluid Density",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Fluid Viscosity",0,("(Dynamic Viscosity)","Units: N-s/m2",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Pipe Out Diameter",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"U-Tube Distance",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Pipe Thickness",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Length of Simulation",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Number of Data Pairs of the G Function",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 27",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 27",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 28",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 28",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 29",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 29",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 30",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 30",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 31",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 31",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 32",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 32",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 33",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 33",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 34",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 34",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 35",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 35",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 36",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 36",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 37",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 37",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 38",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 38",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 39",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 39",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 40",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 40",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 41",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 41",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 42",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 42",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 43",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 43",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 44",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 44",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 45",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 45",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 46",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 46",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 47",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 47",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 48",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 48",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 49",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 49",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 50",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 50",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 51",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 51",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 52",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 52",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 53",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 53",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 54",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 54",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 55",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 55",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 56",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 56",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 57",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 57",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 58",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 58",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 59",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 59",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 60",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 60",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 61",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 61",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 62",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 62",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 63",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 63",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 64",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 64",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 65",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 65",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 66",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 66",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 67",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 67",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 68",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 68",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 69",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 69",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 70",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 70",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 71",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 71",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 72",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 72",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 73",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 73",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 74",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 74",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 75",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 75",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 76",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 76",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 77",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 77",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 78",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 78",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 79",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 79",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 80",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 80",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 81",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 81",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 82",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 82",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 83",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 83",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 84",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 84",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 85",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 85",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 86",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 86",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 87",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 87",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 88",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 88",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 89",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 89",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 90",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 90",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 91",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 91",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 92",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 92",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 93",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 93",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 94",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 94",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 95",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 95",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 96",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 96",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 97",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 97",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 98",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 98",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 99",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 99",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function Ln(T/Ts) Value 100",0,"","","","",""))
        self.InsertField(FieldReal(self,"G-Function G Value 100",0,"","","","",""))


        self.insertMemo(("Variable short time step vertical ground heat exchanger model based on","Yavuztruk, C., J.D.Spitler. 1999. A Short Time Step response Factor Model for","Vertical Ground Loop Heat Exchangers",))
        self.setRequired(False)
        self.setMinfields(24)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("GroundHeatExchanger:Vertical")





class GroundHeatExchanger_Pond(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Fluid Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Fluid Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fluid Name","Water",("(Water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldReal(self,"Fluid Glycol Concentration",0,("with the rewrite of fluid properties this parameter is no longer needed","Units: percent",),0,100,"",""))
        self.InsertField(FieldReal(self,"Pond Depth",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Pond Area",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Hydronic Tubing Inside Diameter",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Hydronic Tubing Outside Diameter",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Hydronic Tubing Thermal Conductivity",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Ground Thermal Conductivity",0,"","","",0,""))
        self.InsertField(FieldInt(self,"Number of Tubing Circuits",0,"",1,"","",""))
        self.InsertField(FieldReal(self,"Length of Each Tubing Circuit",0,"",0,"","",""))


        self.insertMemo(("A model of a shallow pond with immersed pipe loops.","Typically used in hybrid geothermal systems and included in the condenser loop.","This component may also be used as a simple solar collector.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("GroundHeatExchanger:Pond")





class GroundHeatExchanger_Surface(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","","","ConstructionNames"))
        self.InsertField(FieldText(self,"Fluid Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Fluid Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fluid Name","Water",("(Water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldReal(self,"Hydronic Tubing Inside Diameter",0,"","","",0,""))
        self.InsertField(FieldInt(self,"Number of Tubing Circuits",0,"",1,"","",""))
        self.InsertField(FieldReal(self,"Hydronic Tube Spacing",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Surface Length",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Surface Width",0,"","","",0.0,""))
        self.InsertField(FieldChoice(self,"Lower Surface Environment","Ground","",["Ground","Exposed",]))


        self.insertMemo(("A hydronic surface/panel consisting of a multi-layer construction with embedded rows of tubes.","Typically used in hybrid geothermal systems and included in the condenser loop.","This component may also be used as a simple solar collector.","The bottom surface may be defined as ground-coupled or exposed to wind (eg. bridge deck).",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("GroundHeatExchanger:Surface")





class HeatExchanger_Hydronic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Controlled Component Name","",""))
        self.InsertField(FieldText(self,"Controlled Component Object Type","",""))
        self.InsertField(FieldText(self,"Setpoint Schedule Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Plant Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Plant Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Condenser Loop Fluid Name","Water","","GlycolConcentrations"))
        self.InsertField(FieldObjectlist(self,"Plant Loop Fluid Name","Water","","GlycolConcentrations"))
        self.InsertField(FieldChoice(self,"Free Cooling Control Mode","Loop","",["WetBulbTemperature","DryBulbTemperature","Schedule","Loop",]))
        self.InsertField(FieldText(self,"Heat Exchanger Setpoint Schedule Name","",""))
        self.InsertField(FieldChoice(self,"Heat Exchange Mode","Ideal","",["Ideal","UFactorTimesAreaEffectiveness",]))
        self.InsertField(FieldReal(self,"U-Factor Times Area Value",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Condenser Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Plant Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldText(self,"Controlled Component Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Controlled Component Condenser Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Controlled Component Plant Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Controlled Component Plant Outlet Node Name","",""))


        self.insertMemo(("A fluid/fluid heat exchanger designed to couple the plant loop to the condenser loop.","May be set as an ideal heat exchanger to emulate complete coupling of the loops.","May also be used as a 'real' heat exchanger using an U-Factor Times Area-Effectiveness model.","For controlled free cooling a component on another branch (e.g. chiller) can","be switched on/off.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatExchanger:Hydronic")





class HeatExchanger_Plate(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Controlled Component Name","",""))
        self.InsertField(FieldText(self,"Controlled Component Object Type","",""))
        self.InsertField(FieldText(self,"Demand Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Demand Side Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Supply Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Supply Side Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Demand Side Loop Fluid Name","Water","","GlycolConcentrations"))
        self.InsertField(FieldObjectlist(self,"Supply Side Loop Fluid Name","Water","","GlycolConcentrations"))
        self.InsertField(FieldChoice(self,"Heat Exchange Mode","Ideal","",["Ideal","UFactorTimesAreaEffectiveness",]))
        self.InsertField(FieldReal(self,"U-Factor Times Area Value",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Demand Side Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Supply Side Flow Rate",0,"","","",0.0,""))


        self.insertMemo(("A fluid/fluid heat exchanger designed to couple one condenser loop to another condenser loop.","May be set as an ideal heat exchanger to emulate complete coupling of the loops.","May also be used as a 'real' heat exchanger using an U-Factor Times Area-Effectiveness model.","For controlled free cooling a component is series (e.g. chiller) can be switched on/off.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Condenser Equipment and Heat Exchangers") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatExchanger:Plate")





class HeatExchanger_WatersideEconomizer(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Heat Exchanger Type","","",["PlateFrame","CounterFlow","ParallelFlow","Ideal",]))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("default is that heat exchanger is on","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Chilled Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Chilled Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Chilled Water Loop Fluid Name","Water","","GlycolConcentrations"))
        self.InsertField(FieldObjectlist(self,"Condenser Loop Fluid Name","Water","","GlycolConcentrations"))
        self.InsertField(FieldRealAutocalculate(self,"Chilled Water Side Maximum Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Condenser Side Maximum Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Heat Exchanger U-Factor Times Area Value",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Temperature Difference to Activate Heat Exchanger","0.001",("Minimum temp difference between chilled water side heat exchanger inlet and condenser","side heat exchanger inlet required to turn on heat exchanger.","Units: deltaC",),"",50,0.0,""))


        self.insertMemo(("A fluid/fluid heat exchanger designed to model plant waterside economizers",))
        self.setRequired(False)
        self.setMinfields(13)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("HeatExchanger:WatersideEconomizer")





class WaterHeater_Mixed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Tank Volume","0.0","",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Setpoint Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Deadband Temperature Difference","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Temperature Limit",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Heater Control Type","Cycle","",["Cycle","Modulate",]))
        self.InsertField(FieldRealAutocalculate(self,"Heater Maximum Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Heater Minimum Capacity",0,("Only used when Heater Control Type is set to Modulate","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Heater Ignition Minimum Flow Rate","0.0",("Not yet implemented","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Heater Ignition Delay","0.0",("Not yet implemented","Units: s",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Heater Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Steam","DistrictHeating",]))
        self.InsertField(FieldReal(self,"Heater Thermal Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldObjectlist(self,"Part Load Factor Curve Name","","","QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Off Cycle Parasitic Fuel Consumption Rate","0.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Off Cycle Parasitic Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Steam","DistrictHeating",]))
        self.InsertField(FieldReal(self,"Off Cycle Parasitic Heat Fraction to Tank","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"On Cycle Parasitic Fuel Consumption Rate","0.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"On Cycle Parasitic Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Steam","DistrictHeating",]))
        self.InsertField(FieldReal(self,"On Cycle Parasitic Heat Fraction to Tank","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Ambient Temperature Indicator","","",["Schedule","Zone","Outdoors",]))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Ambient Temperature Outdoor Air Node Name","",("required for Ambient Temperature Indicator=Outdoors","",)))
        self.InsertField(FieldReal(self,"Off Cycle Loss Coefficient to Ambient Temperature",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Off Cycle Loss Fraction to Zone","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"On Cycle Loss Coefficient to Ambient Temperature",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"On Cycle Loss Fraction to Zone","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Peak Use Flow Rate",0,("Only used if Use Side Node connections are blank","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Use Flow Rate Fraction Schedule Name","",("Only used if Use Side Node connections are blank","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cold Water Supply Temperature Schedule Name","",("Only used if Use Side Node connections are blank","Defaults to water temperatures calculated by Site:WaterMainsTemperature object","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Use Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Use Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Use Side Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Source Side Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Use Side Design Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Source Side Design Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Indirect Water Heating Recovery Time","1.5",("Parameter for autosizing design flow rates for indirectly heated water tanks","Time required to raise temperature of entire tank from 14.4C to 57.2C","Units: hr",),"","",0.0,""))


        self.addReference("WaterHeaterNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("WaterHeater:Mixed")





class WaterHeater_Stratified(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))
        self.InsertField(FieldRealAutocalculate(self,"Tank Volume",0,"","","",0.0,""))
        self.InsertField(FieldRealAutocalculate(self,"Tank Height",0,("Height is measured in the axial direction for horizontal cylinders","Units: m",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Tank Shape","VerticalCylinder","",["VerticalCylinder","HorizontalCylinder","Other",]))
        self.InsertField(FieldReal(self,"Tank Perimeter",0,("Only used if Tank Shape is Other","Units: m",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Temperature Limit",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Heater Priority Control","MasterSlave","",["MasterSlave","Simultaneous",]))
        self.InsertField(FieldObjectlist(self,"Heater 1 Setpoint Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Heater 1 Deadband Temperature Difference","0.0","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Heater 1 Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Heater 1 Height",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Heater 2 Setpoint Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Heater 2 Deadband Temperature Difference","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Heater 2 Capacity",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Heater 2 Height",0,"",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Heater Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Steam","DistrictHeating",]))
        self.InsertField(FieldReal(self,"Heater Thermal Efficiency",0,"","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Off Cycle Parasitic Fuel Consumption Rate","0.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Off Cycle Parasitic Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Steam","DistrictHeating",]))
        self.InsertField(FieldReal(self,"Off Cycle Parasitic Heat Fraction to Tank","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Off Cycle Parasitic Height","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"On Cycle Parasitic Fuel Consumption Rate","0.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"On Cycle Parasitic Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Steam","DistrictHeating",]))
        self.InsertField(FieldReal(self,"On Cycle Parasitic Heat Fraction to Tank","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"On Cycle Parasitic Height","0.0","",0.0,"","",""))
        self.InsertField(FieldChoice(self,"Ambient Temperature Indicator","","",["Schedule","Zone","Outdoors",]))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Ambient Temperature Outdoor Air Node Name","",("required for Ambient Temperature Indicater=Outdoors","",)))
        self.InsertField(FieldReal(self,"Uniform Skin Loss Coefficient per Unit Area to Ambient Temperature",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Skin Loss Fraction to Zone","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Off Cycle Flue Loss Coefficient to Ambient Temperature",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Off Cycle Flue Loss Fraction to Zone","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Peak Use Flow Rate",0,("Only used if Use Side Node connections are blank","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Use Flow Rate Fraction Schedule Name","",("If blank, defaults to 1.0 at all times","Only used if use side node connections are blank","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cold Water Supply Temperature Schedule Name","",("Only used if use side node connections are blank","Defaults to water temperatures calculated by Site:WaterMainsTemperature object","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Use Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Use Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Use Side Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Use Side Inlet Height","0.0",("Defaults to bottom of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Use Side Outlet Height","Autocalculate",("Defaults to top of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Source Side Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Source Side Inlet Height","Autocalculate",("Defaults to top of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Source Side Outlet Height","0.0",("Defaults to bottom of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Inlet Mode","Fixed","",["Fixed","Seeking",]))
        self.InsertField(FieldRealAutocalculate(self,"Use Side Design Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Source Side Design Flow Rate","Autosize","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Indirect Water Heating Recovery Time","1.5",("Parameter for autosizing design flow rates for indirectly heated water tanks","time required to raise temperature of entire tank from 14.4C to 57.2C","Units: hr",),"","",0.0,""))
        self.InsertField(FieldInt(self,"Number of Nodes","1","",1,10,"",""))
        self.InsertField(FieldReal(self,"Additional Destratification Conductivity","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Node 1 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 2 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 3 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 4 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 5 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 6 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 7 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 8 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 9 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 10 Additional Loss Coefficient","0.0","","","","",""))


        self.addReference("WaterHeaterNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("WaterHeater:Stratified")





class WaterHeater_Sizing(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"WaterHeater Name","","","WaterHeaterNames"))
        self.InsertField(FieldChoice(self,"Design Mode","","",["PeakDraw","ResidentialHUD-FHAMinimum","PerPerson","PerFloorArea","PerUnit","PerSolarCollectorArea",]))
        self.InsertField(FieldReal(self,"Time Storage Can Meet Peak Draw",0,("Only used for Design Mode = PeakDraw","Units: hr",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Time for Tank Recovery",0,("Only used for Design Mode = PeakDraw","Units: hr",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal Tank Volume for Autosizing Plant Connections",0,("Only used if Design Mode = PeakDraw and the water heater also","has autosized flow rates for connections on the demand side of a plant loop","Units: m3",),"","","",""))
        self.InsertField(FieldInt(self,"Number of Bedrooms",0,("Only used for Design Mode = ResidentialHUD-FHAMinimum","",),1,"","",""))
        self.InsertField(FieldInt(self,"Number of Bathrooms",0,("Only used for Design Mode = ResidentialHUD-FHAMinimum","",),1,"","",""))
        self.InsertField(FieldReal(self,"Storage Capacity per Person",0,("Only used for Design Mode = PerPerson","Units: m3/Person",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Recovery Capacity per Person",0,("Only used for Design Mode = PerPerson","Units: m3/hr-person",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Storage Capacity per Floor Area",0,("Only used for Design Mode = PerFloorArea","Units: m3/m2",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Recovery Capacity per Floor Area",0,("Only used for Design Mode = PerFloorArea","Units: m3/hr-m2",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Number of Units",0,("Only used for Design Mode = PerUnit","",),"","","",""))
        self.InsertField(FieldReal(self,"Storage Capacity per Unit",0,("Only used for Design Mode = PerUnit","Units: m3",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Recovery Capacity PerUnit",0,("Only used for Design Mode = PerUnit","Units: m3/hr",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Storage Capacity per Collector Area",0,("Only used for Design Mode = PerSolarCollectorArea","Units: m3/m2",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Height Aspect Ratio",0,("only used if for WaterHeater:Stratified","",),0.0,"","",""))


        self.insertMemo(("This input object is used with WaterHeater:Mixed or","with WaterHeater:Stratified to autosize tank volume and heater capacity","This object is not needed if water heaters are not autosized.",))
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("WaterHeater:Sizing")





class WaterHeater_HeatPump(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Unique name for this instance of a heat pump water heater.","",)))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("Schedule values of 0 denote the heat pump compressor is off and the parasitic electric","energy is also off.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Compressor Setpoint Temperature Schedule Name","",("Defines the cut-out temperature where the heat pump compressor turns off.","The heat pump compressor setpoint temperature should always be greater","than the water tank's heater (element or burner) setpoint temperature.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Dead Band Temperature Difference","5.0",("Setpoint temperature minus the dead band temperature difference defines","the cut-in temperature where the heat pump compressor turns on.","The water tank's heater (element or burner) setpoint temperature","should always be less than the heat pump compressor cut-in temperature.","Units: deltaC",),"",20,0.0,""))
        self.InsertField(FieldText(self,"Condenser Water Inlet Node Name","",("Should match the field Source Outlet Node Name in the water heater tank object.","Should also match the Condenser Water Inlet Node Name in the associated","DX coil object.","",)))
        self.InsertField(FieldText(self,"Condenser Water Outlet Node Name","",("Should match the field Source Inlet Node Name in water heater tank object.","Should also match the Condenser Water Outlet Node Name in the associated","DX Coil object.","",)))
        self.InsertField(FieldRealAutocalculate(self,"Condenser Water Flow Rate",0,("Actual water flow rate through the heat pump's water coil (condenser).","If autocalculated, the water flow rate is set equal to 4.487E-8 m3/s/W times","the rated heating capacity of the heat pump's DX coil.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldRealAutocalculate(self,"Evaporator Air Flow Rate",0,("Actual air flow rate across the heat pump's air coil (evaporator).","If autocalculated, the air flow rate is set equal to 5.035E-5 m3/s/W times","the rated heating capacity of the heat pump's DX coil.","Units: m3/s",),"","",0,""))
        self.InsertField(FieldChoice(self,"Inlet Air Configuration","",("Defines the configuration of the airflow path through the air coil and fan section.","",),["Schedule","ZoneAirOnly","OutdoorAirOnly","ZoneAndOutdoorAir",]))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("Zone air exhaust node name if Inlet Air Configuration is ZoneAirOnly or","ZoneAndOutdoorAir.","Simply a unique Node Name if Inlet Air Configuration is Schedule.","Otherwise, leave field blank.","",)))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",("Zone Air Inlet Node Name if Inlet Air Configuration is ZoneAirOnly or","ZoneAndOutdoorAir.","Simply a unique Node Name if Inlet Air Configuration is Schedule.","Otherwise, leave field blank.","",)))
        self.InsertField(FieldText(self,"Outdoor Air Node Name","",("Outdoor air node name if inlet air configuration is ZoneAndOutdoorAir","or OutdoorAirOnly, otherwise leave field blank.","",)))
        self.InsertField(FieldText(self,"Exhaust Air Node Name","",("Simply a unique Node Name if Inlet Air Configuration is ZoneAndOutdoorAir","or OutdoorAirOnly, otherwise leave field blank.","",)))
        self.InsertField(FieldObjectlist(self,"Inlet Air Temperature Schedule Name","",("Used only if Inlet Air Configuration is Schedule, otherwise leave blank.","Schedule values should be degrees C.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Inlet Air Humidity Schedule Name","",("Used only if Inlet Air Configuration is Schedule, otherwise leave blank.","Schedule values are entered as a fraction (e.g. 0.5 is equal to 50%RH)","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Inlet Air Zone Name","",("Used only if Inlet Air Configuration is ZoneAirOnly or ZoneAndOutdoorAir.","Otherwise, leave field blank.","",),"ZoneNames"))
        self.InsertField(FieldChoice(self,"Tank Object Type","WaterHeater:Mixed",("Specify the type of water heater tank used by this heat pump water heater.","",),["WaterHeater:Mixed",]))
        self.InsertField(FieldObjectlist(self,"Tank Name","",("Needs to match the name used in the corresponding Water Heater object.","",),"WaterHeaterNames"))
        self.InsertField(FieldText(self,"Tank Use Side Inlet Node Name","",("Used only when the heat pump water heater is connected to a plant loop,","otherwise leave blank. Needs to match the name used in the corresponding","Water Heater object when connected to a plant loop.","",)))
        self.InsertField(FieldText(self,"Tank Use Side Outlet Node Name","",("Used only when the heat pump water heater is connected to a plant loop,","otherwise leave blank. Needs to match the name used in the corresponding","Water Heater object when connected to a plant loop.","",)))
        self.InsertField(FieldChoice(self,"DX Coil Object Type","Coil:WaterHeating:AirToWaterHeatPump",("Specify the type of DX coil used by this heat pump water heater. The only","valid choice is Coil:WaterHeating:AirToWaterHeatPump.","",),["Coil:WaterHeating:AirToWaterHeatPump",]))
        self.InsertField(FieldObjectlist(self,"DX Coil Name","",("Must match the name used in the corresponding Coil:WaterHeating:AirToWaterHeatPump object.","",),"HeatPumpWaterHeaterDXCoils"))
        self.InsertField(FieldReal(self,"Minimum Inlet Air Temperature for Compressor Operation","10",("Heat pump compressor will not operate when the inlet air dry-bulb temperature","is below this value.","Units: C",),5,"","",""))
        self.InsertField(FieldChoice(self,"Compressor Location","",("If Zone is selected, Inlet Air Configuration must be ZoneAirOnly or","ZoneAndOutdoorAir. If Schedule is selected, then you must provide a","Compressor Ambient Temperature Schedule Name below.","",),["Schedule","Zone","Outdoors",]))
        self.InsertField(FieldObjectlist(self,"Compressor Ambient Temperature Schedule Name","",("Used only if Compressor Location is Schedule, otherwise leave field blank.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Fan Object Type","Fan:OnOff",("Specify the type of fan used by this heat pump water heater. The only","valid choice is Fan:OnOff.","",),["Fan:OnOff",]))
        self.InsertField(FieldObjectlist(self,"Fan Name","",("Needs to match the name used in the corresponding Fan:OnOff object.","",),"FansOnOff"))
        self.InsertField(FieldChoice(self,"Fan Placement","DrawThrough",("BlowThrough means the fan is located before the air coil (upstream).","DrawThrough means the fan is located after the air coil (downstream).","",),["BlowThrough","DrawThrough",]))
        self.InsertField(FieldReal(self,"On Cycle Parasitic Electric Load","0.0",("Parasitic electric power consumed when the heat pump compressor operates.","Does not contribute to water heating but can impact the zone air heat balance.","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Off Cycle Parasitic Electric Load","0.0",("Parasitic electric power consumed when the heat pump compressor is off.","Does not contribute to water heating but can impact the zone air heat balance.","Off-cycle parasitic power is 0 when the availability schedule is 0.","Units: W",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Parasitic Heat Rejection Location","Outdoors",("This field determines if the parasitic electric load impacts the zone air","heat balance. If Zone is selected, Inlet Air Configuration must be","ZoneAirOnly or ZoneAndOutdoorAir.","",),["Zone","Outdoors",]))
        self.InsertField(FieldText(self,"Inlet Air Mixer Node Name","",("Required only if Inlet Air Configuration is ZoneAndOutdoorAir, otherwise","leave field blank.","",)))
        self.InsertField(FieldText(self,"Outlet Air Splitter Node Name","",("Required only if Inlet Air Configuration is ZoneAndOutdoorAir, otherwise","leave field blank.","",)))
        self.InsertField(FieldObjectlist(self,"Inlet Air Mixer Schedule Name","",("Required only if Inlet Air Configuration is ZoneAndOutdoorAir, otherwise","leave field blank. Schedule values define whether the heat pump draws its","inlet air from the zone, outdoors or a combination of zone and outdoor air.","A schedule value of 0 denotes inlet air is drawn only from the zone.","A schedule value of 1 denotes inlet air is drawn only from outdoors.","Schedule values between 0 and 1 denote a mixture of zone and outdoor air","proportional to the schedule value.","",),"ScheduleNames"))


        self.insertMemo(("This object models an air-source heat pump for water heating.","WaterHeater:HeatPump is a compound object that references other component objects -","Coil:WaterHeating:AirToWaterHeatPump, Fan:OnOff, WaterHeater:Mixed",))
        self.setRequired(False)
        self.setMinfields(31)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("WaterHeater:HeatPump")





class ThermalStorage_Ice_Simple(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Ice Storage Type","",("IceOnCoilInternal = Ice-on-Coil, internal melt","IceOnCoilExternal = Ice-on-Coil, external melt","",),["IceOnCoilInternal","IceOnCoilExternal",]))
        self.InsertField(FieldReal(self,"Capacity",0,"","","","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))


        self.insertMemo(("This ice storage model is a simplified model","It requires a setpoint placed on the Chilled Water Side Outlet Node","It should be placed in the chilled water supply side outlet branch","followed by a pipe.","Use the PlantEquipmentOperation:ComponentSetpoint plant operation scheme.",))
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermalStorage:Ice:Simple")





class ThermalStorage_Ice_Detailed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Availability Schedule Name","",""))
        self.InsertField(FieldReal(self,"Capacity",0,("This includes only the latent storage capacity","Units: GJ",),"","","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Discharging Curve Object Type","",""))
        self.InsertField(FieldText(self,"Discharging Curve Name","",""))
        self.InsertField(FieldText(self,"Charging Curve Object Type","",""))
        self.InsertField(FieldText(self,"Charging Curve Name","",""))
        self.InsertField(FieldReal(self,"Timestep of the Curve Data",0,"","","","",""))
        self.InsertField(FieldReal(self,"Parasitic Electric Load During Discharging",0,"","","","",""))
        self.InsertField(FieldReal(self,"Parasitic Electric Load During Charging",0,"","","","",""))
        self.InsertField(FieldReal(self,"Tank Loss Coefficient",0,("This is the fraction the total storage capacity that is lost or melts","each hour","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Freezing Temperature of Storage Medium","0.0",("This temperature is typically 0C for water.","Simply changing this temperature without adjusting the performance","parameters input above is inappropriate and not advised.","Units: C",),"","","",""))


        self.insertMemo(("This input syntax is intended to describe a thermal storage system that","includes smaller containers filled with water that are placed in a larger","tank or series of tanks.","The model uses polynomial equations to describe the system performance.",))
        self.setRequired(False)
        self.setMinfields(14)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermalStorage:Ice:Detailed")





class ThermalStorage_ChilledWater_Mixed(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Tank Volume","0.1","","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Setpoint Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Deadband Temperature Difference","0.5","","","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Temperature Limit",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Cooling Capacity",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Ambient Temperature Indicator","","",["Schedule","Zone","Outdoors",]))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Ambient Temperature Outdoor Air Node Name","",("required when field Ambient Temperature Indicator=Outdoors","",)))
        self.InsertField(FieldReal(self,"Heat Gain Coefficient from Ambient Temperature",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Use Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Use Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Use Side Heat Transfer Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Use Side Availability Schedule Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Use Side Design Flow Rate","autosize","",0.0,"","",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Source Side Heat Transfer Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Source Side Availability Schedule Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Source Side Design Flow Rate","autosize","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Tank Recovery Time","4.0",("Parameter for autosizing design flow rates for indirectly cooled water tanks","time required to lower temperature of entire tank from 14.4C to 9.0C","Units: hr",),"","",0.0,""))


        self.addReference("ChilledWaterStorageNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Heaters and Thermal Storage") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermalStorage:ChilledWater:Mixed")





class ThermalStorage_ChilledWater_Stratified(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Tank Volume",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Tank Height",0,("Height is measured in the axial direction for horizontal cylinders","Units: m",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Tank Shape","VerticalCylinder","",["VerticalCylinder","HorizontalCylinder","Other",]))
        self.InsertField(FieldReal(self,"Tank Perimeter",0,("Only used if Tank Shape is Other","Units: m",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Setpoint Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Deadband Temperature Difference","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Temperature Sensor Height",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Temperature Limit",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Cooling Capacity",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Ambient Temperature Indicator","","",["Schedule","Zone","Outdoors",]))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Ambient Temperature Outdoor Air Node Name","",("required for Ambient Temperature Indicator=Outdoors","",)))
        self.InsertField(FieldReal(self,"Uniform Skin Loss Coefficient per Unit Area to Ambient Temperature",0,"",0.0,"","",""))
        self.InsertField(FieldText(self,"Use Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Use Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Use Side Heat Transfer Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Use Side Availability Schedule Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Use Side Inlet Height","autocalculate",("Defaults to top of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Use Side Outlet Height","0.0",("Defaults to bottom of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Use Side Design Flow Rate","autosize","",0.0,"","",""))
        self.InsertField(FieldText(self,"Source Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Source Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Source Side Heat Transfer Effectiveness","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Source Side Availability Schedule Name","",""))
        self.InsertField(FieldReal(self,"Source Side Inlet Height","0.0",("Defaults to bottom of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Source Side Outlet Height","autocalculate",("Defaults to top of tank","Units: m",),0.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Source Side Design Flow Rate","autosize","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Tank Recovery Time","4.0",("Parameter for autosizing design flow rates for indirectly cooled water tanks","time required to lower temperature of entire tank from 14.4C to 9.0C","Units: hr",),"","",0.0,""))
        self.InsertField(FieldChoice(self,"Inlet Mode","Fixed","",["Fixed","Seeking",]))
        self.InsertField(FieldInt(self,"Number of Nodes","1","",1,10,"",""))
        self.InsertField(FieldReal(self,"Additional Destratification Conductivity","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Node 1 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 2 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 3 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 4 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 5 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 6 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 7 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 8 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 9 Additional Loss Coefficient","0.0","","","","",""))
        self.InsertField(FieldReal(self,"Node 10 Additional Loss Coefficient","0.0","","","","",""))


        self.addReference("ChilledWaterStorageNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("ThermalStorage:ChilledWater:Stratified")





class PlantLoop(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fluid Type","Water","",["Water","Steam",]))
        self.InsertField(FieldObjectlist(self,"Plant Equipment Operation Scheme Name","","","PlantOperationSchemes"))
        self.InsertField(FieldText(self,"Loop Temperature Setpoint Node Name","",""))
        self.InsertField(FieldReal(self,"Maximum Loop Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Loop Temperature",0,"","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Loop Flow Rate",0,"",0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Loop Flow Rate","0.0","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Plant Loop Volume","Autocalculate","",0.0,"","",""))
        self.InsertField(FieldText(self,"Plant Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Plant Side Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Plant Side Branch List Name","","","BranchLists"))
        self.InsertField(FieldObjectlist(self,"Plant Side Connector List Name","","","ConnectorLists"))
        self.InsertField(FieldText(self,"Demand Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Demand Side Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Demand Side Branch List Name","","","BranchLists"))
        self.InsertField(FieldObjectlist(self,"Demand Side Connector List Name","","","ConnectorLists"))
        self.InsertField(FieldChoice(self,"Load Distribution Scheme","Sequential","",["Optimal","Sequential","Uniform",]))
        self.InsertField(FieldObjectlist(self,"Availability Manager List Name","","","SystemAvailabilityManagerLists"))
        self.InsertField(FieldChoice(self,"Plant Loop Demand Calculation Scheme","SingleSetpoint","",["SingleSetpoint","DualSetpointDeadband",]))
        self.InsertField(FieldChoice(self,"Common Pipe Simulation","None","",["CommonPipe","TwoWayCommonPipe","None",]))


        self.addReference("PlantLoops")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantLoop")





class CondenserLoop(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fluid Type","Water","",["Water",]))
        self.InsertField(FieldObjectlist(self,"Condenser Equipment Operation Scheme Name","","","CondenserOperationSchemes"))
        self.InsertField(FieldText(self,"Condenser Loop Temperature Setpoint Node Name or Reference","",("Temperature setpoint Node name, or","Air to use the outdoor air wet-bulb as the setpoint, or","Ground to use the ground temperature as the setpoint","",)))
        self.InsertField(FieldReal(self,"Maximum Loop Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Loop Temperature",0,"",5.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Maximum Loop Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Loop Flow Rate","0.0","","","","",""))
        self.InsertField(FieldRealAutocalculate(self,"Condenser Loop Volume","Autocalculate","",0.0,"","",""))
        self.InsertField(FieldText(self,"Condenser Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Condenser Side Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Condenser Side Branch List Name","","","BranchLists"))
        self.InsertField(FieldObjectlist(self,"Condenser Side Connector List Name","","","ConnectorLists"))
        self.InsertField(FieldText(self,"Demand Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Demand Side Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Condenser Demand Side Branch List Name","","","BranchLists"))
        self.InsertField(FieldObjectlist(self,"Condenser Demand Side Connector List Name","","","ConnectorLists"))
        self.InsertField(FieldChoice(self,"Load Distribution Scheme","Sequential","",["Optimal","Sequential",]))


        self.addReference("PlantLoops")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("CondenserLoop")





class Pipe_Adiabatic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))


        self.insertMemo(("Passes Inlet Node state variables to Outlet Node state variables",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pipe:Adiabatic")





class Pipe_Adiabatic_Steam(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))


        self.insertMemo(("Passes Inlet Node state variables to Outlet Node state variables",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pipe:Adiabatic:Steam")





class Pipe_Indoor(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","","","ConstructionNames"))
        self.InsertField(FieldText(self,"Fluid Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Fluid Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fluid Name","Water",("(water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldChoice(self,"Environment Type","Zone","",["Zone","Schedule",]))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Zone Name","","","ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Ambient Air Velocity Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Pipe Inside Diameter",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Pipe Length",0,"","","",0.0,""))


        self.insertMemo(("Pipe model with transport delay and heat transfer to the environment.","Heat transfer pipes only allowed on loop supply sides",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pipe:Indoor")





class Pipe_Outdoor(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","","","ConstructionNames"))
        self.InsertField(FieldText(self,"Fluid Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Fluid Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fluid Name","Water",("(water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldText(self,"Ambient Temperature Outdoor Air Node Name","",""))
        self.InsertField(FieldReal(self,"Pipe Inside Diameter",0,"","","",0,""))
        self.InsertField(FieldReal(self,"Pipe Length",0,"","","",0.0,""))


        self.insertMemo(("Pipe model with transport delay and heat transfer to the environment.","Heat transfer pipes only allowed on loop supply sides",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pipe:Outdoor")





class Pipe_Underground(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Construction Name","","","ConstructionNames"))
        self.InsertField(FieldText(self,"Fluid Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Fluid Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Fluid Name","water",("(water, ethylene glycol, etc.)","",),"GlycolConcentrations"))
        self.InsertField(FieldChoice(self,"Sun Exposure","","",["SunExposed","NoSun",]))
        self.InsertField(FieldReal(self,"Pipe Inside Diameter",0,("pipe thickness is defined in the Construction object","Units: m",),"","",0,""))
        self.InsertField(FieldReal(self,"Pipe Length",0,"","","",0.0,""))
        self.InsertField(FieldText(self,"Soil Material Name","",""))
        self.InsertField(FieldReal(self,"Average Soil Surface Temperature","0",("optional","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Amplitude of Soil Surface Temperature","0",("optional","Units: C",),0,"","",""))
        self.InsertField(FieldReal(self,"Phase Constant of Soil Surface Temperature","0",("optional","Units: days",),0,"","",""))


        self.insertMemo(("Buried Pipe model: For pipes buried at a depth less","than one meter, this is an alternative object to:","HeatExchanger:Surface","Heat transfer pipes only allowed on loop supply sides",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("Pipe:Underground")





class PlantLoopConnection(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Primary Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Primary Side Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Primary Side Design Maximum Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Primary Side Flow Mode","ConstantFlow",("Sets the Primary Side to either a Variable or ConstantFlow Simulation","",),["ConstantFlow","VariableFlow  !Not implemented yet",]))
        self.InsertField(FieldReal(self,"Secondary Side Design Maximum Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Secondary Side Flow Mode","VariableFlow",("Sets the Secondary Side to either a Variable or ConstantFlow Simulation","",),["ConstantFlow  !Not implemented yet","VariableFlow",]))


        self.insertMemo(("This component is used to connect to Plant Loops together.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Loops") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantLoopConnection")





class PlantLoopConnection_Controlled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Primary Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Primary Side Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Side Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Secondary Side Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Primary Side Design Maximum Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Secondary Side Design Maximum Flow Rate",0,"","","","",""))
        self.InsertField(FieldText(self,"Secondary Side Setpoint Node Name","",""))


        self.insertMemo(("This component is used to connect to Plant Loops together.","The controlled connection component simulates a 3-way mixing","valve to allow the secondary loop to be controlled to a different","setpoint temperature than the primary loop.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantLoopConnection:Controlled")





class PlantEquipmentList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Equipment 1 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 1 Name","",""))
        self.InsertField(FieldText(self,"Equipment 2 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 2 Name","",""))
        self.InsertField(FieldText(self,"Equipment 3 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 3 Name","",""))
        self.InsertField(FieldText(self,"Equipment 4 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 4 Name","",""))
        self.InsertField(FieldText(self,"Equipment 5 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 5 Name","",""))
        self.InsertField(FieldText(self,"Equipment 6 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 6 Name","",""))
        self.InsertField(FieldText(self,"Equipment 7 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 7 Name","",""))
        self.InsertField(FieldText(self,"Equipment 8 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 8 Name","",""))
        self.InsertField(FieldText(self,"Equipment 9 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 9 Name","",""))
        self.InsertField(FieldText(self,"Equipment 10 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 10 Name","",""))


        self.insertMemo(("List plant equipment in order of operating priority, 1st in list will be used 1st, etc","Use only plant equipment in this list.",))
        self.addReference("PlantAndCondenserEquipmentLists")
        self.addReference("PlantEquipmentLists")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentList")





class CondenserEquipmentList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Equipment 1 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 1 Name","",""))
        self.InsertField(FieldText(self,"Equipment 2 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 2 Name","",""))
        self.InsertField(FieldText(self,"Equipment 3 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 3 Name","",""))
        self.InsertField(FieldText(self,"Equipment 4 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 4 Name","",""))
        self.InsertField(FieldText(self,"Equipment 5 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 5 Name","",""))
        self.InsertField(FieldText(self,"Equipment 6 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 6 Name","",""))
        self.InsertField(FieldText(self,"Equipment 7 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 7 Name","",""))
        self.InsertField(FieldText(self,"Equipment 8 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 8 Name","",""))
        self.InsertField(FieldText(self,"Equipment 9 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 9 Name","",""))
        self.InsertField(FieldText(self,"Equipment 10 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 10 Name","",""))


        self.insertMemo(("List condenser equipment in order of operating priority, 1st in list will be used 1st, etc","Use only condenser equipment in this list.",))
        self.addReference("PlantAndCondenserEquipmentLists")
        self.addReference("CondenserEquipmentLists")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("CondenserEquipmentList")





class PlantEquipmentOperation_Uncontrolled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Equipment List Name","","","PlantAndCondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:Uncontrolled")





class PlantEquipmentOperation_CoolingLoad(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Load Range 1 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 1 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 2 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 2 Upper Limit",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 3 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 3 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 4 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 4 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 5 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 5 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 6 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 6 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 7 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 7 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 8 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 8 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 9 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 9 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 10 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 10 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","PlantAndCondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:CoolingLoad")





class PlantEquipmentOperation_HeatingLoad(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Load Range 1 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 1 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 2 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 2 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 3 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 3 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 4 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 4 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 5 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 5 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 6 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 6 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 7 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 7 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 8 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 8 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 9 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 9 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","PlantAndCondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Load Range 10 Lower Limit",0,"",0.0,"","",""))
        self.InsertField(FieldReal(self,"Load Range 10 Upper Limit",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","PlantAndCondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:HeatingLoad")





class PlantEquipmentOperation_OutdoorDryBulb(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Dry-bulb Temperature Range 1 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 1 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 2 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 2 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 3 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 3 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 4 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 4 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 5 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 5 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 6 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 6 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 7 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 7 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 8 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 8 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 9 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 9 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 10 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Range 10 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","CondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:OutdoorDryBulb")





class PlantEquipmentOperation_OutdoorWetBulb(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 1 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 1 Upper Limit",0,"","",70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 2 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 2 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 3 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 3 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 4 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 4 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 5 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 5 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 6 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 6 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 7 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 7 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 8 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 8 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 9 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 9 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 10 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Range 10 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","CondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:OutdoorWetBulb")





class PlantEquipmentOperation_OutdoorRelativeHumidity(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 1 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 1 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 2 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 2 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 3 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 3 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 4 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 4 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 5 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 5 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 6 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 6 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 7 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 7 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 8 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 8 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 9 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 9 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Relative Humidity Range 10 Lower Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Relative Humidity Range 10 Upper Limit",0,"",0.0,100.0,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","CondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:OutdoorRelativeHumidity")





class PlantEquipmentOperation_ComponentSetpoint(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Equipment 1 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 1 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 1 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 1 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 1 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 1 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 2 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 2 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 2 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 2 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 2 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 2 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 3 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 3 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 3 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 3 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 3 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 3 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 4 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 4 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 4 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 4 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 4 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 4 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 5 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 5 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 5 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 5 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 5 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 5 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 6 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 6 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 6 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 6 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 6 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 6 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 7 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 7 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 7 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 7 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 7 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 7 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 8 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 8 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 8 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 8 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 8 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 8 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 9 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 9 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 9 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 9 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 9 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 9 Type","","",["Heating","Cooling","Dual",]))
        self.InsertField(FieldText(self,"Equipment 10 Object Type","",""))
        self.InsertField(FieldText(self,"Equipment 10 Name","",""))
        self.InsertField(FieldText(self,"Demand Calculation 10 Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint 10 Node Name","",""))
        self.InsertField(FieldRealAutocalculate(self,"Component 10 Flow Rate",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Operation 10 Type","","",["Heating","Cooling","Dual",]))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:ComponentSetpoint")





class PlantEquipmentOperation_OutdoorDryBulbDifference(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Reference Temperature Node Name","",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 1 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 1 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 1 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 2 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 2 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 2 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 3 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 3 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 3 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 4 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 4 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Switch 4 Type","","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 5 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 5 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Switch 5 Type","","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 6 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 6 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Switch 6 Type","","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 7 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 7 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Switch 7 Type","","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 8 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 8 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Switch 8 Type","","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 9 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 9 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Switch 9 Type","","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 10 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dry-Bulb Temperature Difference Range 10 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldChoice(self,"Switch 10 Type","","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","CondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:OutdoorDryBulbDifference")





class PlantEquipmentOperation_OutdoorWetBulbDifference(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Reference Temperature Node Name","",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 1 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 1 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 1 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 2 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 2 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 2 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 3 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 3 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 3 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 4 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 4 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 4 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 5 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 5 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 5 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 6 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 6 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 6 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 7 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 7 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 7 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 8 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 8 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 8 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 9 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 9 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 9 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 10 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Wet-Bulb Temperature Difference Range 10 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 10 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","CondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:OutdoorWetBulbDifference")





class PlantEquipmentOperation_OutdoorDewpoint(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 1 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 1 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 2 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 2 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 3 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 3 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 4 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 4 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 5 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 5 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 6 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 6 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 7 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 7 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 8 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 8 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 9 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 9 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 10 Lower Limit",0,"",-70,70,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Range 10 Upper Limit",0,"",-70,70,"",""))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","CondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:OutdoorDewpoint")





class PlantEquipmentOperation_OutdoorDewpointDifference(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Reference Temperature Node Name","",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 1 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 1 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 1 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 1 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 2 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 2 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 2 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 2 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 3 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 3 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 3 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 3 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 4 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 4 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 4 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 4 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 5 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 5 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 5 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 5 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 6 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 6 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 6 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 6 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 7 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 7 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 7 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 7 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 8 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 8 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 8 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 8 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 9 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 9 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 9 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 9 Equipment List Name","","","CondenserEquipmentLists"))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 10 Lower Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldReal(self,"Dewpoint Temperature Difference Range 10 Upper Limit",0,"",-50.0,100.0,"",""))
        self.InsertField(FieldOnOff(self,"Switch 10 Type","On","",["On","Off",]))
        self.InsertField(FieldObjectlist(self,"Priority Control 10 Equipment List Name","","","CondenserEquipmentLists"))


        self.addReference("ControlSchemeList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperation:OutdoorDewpointDifference")





class PlantEquipmentOperationSchemes(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Scheme 1 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 1 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 1 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 2 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 2 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 2 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 3 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 3 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 3 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 4 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 4 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 4 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 5 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 5 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 5 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 6 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 6 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 6 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 7 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 7 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 7 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 8 Object Type","","",["PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:ComponentSetpoint",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 8 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 8 Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Operation schemes are listed in *priority* order.  Note that each scheme","must address the entire load and/or condition ranges for the simulation.","The actual one selected for use will be the first that is *Scheduled*","on.  That is, if control scheme 1 is not *on* and control scheme 2","is -- then control scheme 2 is selected.","Only plant equipment should be listed on a Control Scheme for this item.",))
        self.addReference("PlantOperationSchemes")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Plant-Condenser Control") 
        self.setExtensible(-1)
        self.setClassnameIDD("PlantEquipmentOperationSchemes")





class CondenserEquipmentOperationSchemes(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Scheme 1 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 1 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 1 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 2 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 2 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 2 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 3 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 3 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 3 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 4 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 4 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 4 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 5 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 5 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 5 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 6 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 6 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 6 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 7 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 7 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 7 Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Scheme 8 Object Type","","",["PlantEquipmentOperation:Uncontrolled","PlantEquipmentOperation:CoolingLoad","PlantEquipmentOperation:HeatingLoad","PlantEquipmentOperation:OutdoorDryBulb","PlantEquipmentOperation:OutdoorWetBulb","PlantEquipmentOperation:OutdoorRelativeHumidity","PlantEquipmentOperation:OutdoorDewpoint","PlantEquipmentOperation:OutdoorDryBulbDifference","PlantEquipmentOperation:OutdoorWetBulbDifference","PlantEquipmentOperation:OutdoorDewpointDifference",]))
        self.InsertField(FieldObjectlist(self,"Control Scheme 8 Name","","","ControlSchemeList"))
        self.InsertField(FieldObjectlist(self,"Control Scheme 8 Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Operation schemes are listed in *priority* order.  Note that each scheme","must address the entire load and/or condition ranges for the simulation.","The actual one selected for use will be the first that is *Scheduled*","on.  That is, if control scheme 1 is not *on* and control scheme 2","is -- then control scheme 2 is selected.","Only condenser equipment should be listed on a Control Scheme for this item.",))
        self.addReference("CondenserOperationSchemes")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("CondenserEquipmentOperationSchemes")





class AvailabilityManager_Scheduled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Determines the availability of a loop or system: whether it is on or off.","Schedule overrides fan/pump schedule.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:Scheduled")





class AvailabilityManager_ScheduledOn(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Determines the availability of a loop or system: only controls the turn on action.","Schedule overrides fan/pump schedule.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:ScheduledOn")





class AvailabilityManager_ScheduledOff(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Determines the availability of a loop or system: only controls the turn off action.","Schedule overrides fan/pump schedule.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:ScheduledOff")





class AvailabilityManager_NightCycle(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Applicability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Fan Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Control Type","StayOff","",["StayOff","CycleOnAny","CycleOnControlZone","CycleOnAnyZoneFansOnly",]))
        self.InsertField(FieldReal(self,"Thermostat Tolerance","1.0","","","","",""))
        self.InsertField(FieldReal(self,"Cycling Run Time","3600.","","","","",""))
        self.InsertField(FieldObjectlist(self,"Control Zone Name","","","ZoneNames"))


        self.insertMemo(("Determines the availability of a loop or system: whether it is on or off.","Depending on zone temperatures, overrides Schedules and forces system Fans on.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:NightCycle")





class AvailabilityManager_DifferentialThermostat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Hot Node Name","",""))
        self.InsertField(FieldText(self,"Cold Node Name","",""))
        self.InsertField(FieldReal(self,"Temperature Difference On Limit",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature Difference Off Limit",0,("Defaults to Temperature Difference On Limit.","Units: deltaC",),"","","",""))


        self.insertMemo(("Overrides fan/pump schedules depending on temperature difference between two nodes.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:DifferentialThermostat")





class AvailabilityManager_HighTemperatureTurnOff(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldReal(self,"Temperature",0,"","","","",""))


        self.insertMemo(("Overrides fan/pump schedules depending on temperature at sensor node.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:HighTemperatureTurnOff")





class AvailabilityManager_HighTemperatureTurnOn(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldReal(self,"Temperature",0,"","","","",""))


        self.insertMemo(("Overrides fan/pump schedules depending on temperature at sensor node.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:HighTemperatureTurnOn")





class AvailabilityManager_LowTemperatureTurnOff(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldReal(self,"Temperature",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Applicability Schedule Name","",("If blank, defaults to always active","",),"ScheduleNames"))


        self.insertMemo(("Overrides fan/pump schedules depending on temperature at sensor node.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:LowTemperatureTurnOff")





class AvailabilityManager_LowTemperatureTurnOn(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Sensor Node Name","",""))
        self.InsertField(FieldReal(self,"Temperature",0,"","","","",""))


        self.insertMemo(("Overrides fan/pump schedules depending on temperature at sensor node.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:LowTemperatureTurnOn")





class AvailabilityManager_NightVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Applicability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Fan Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Ventilation Temperature Schedule Name","",("One zone temperature must be above this scheduled temperature","for night ventilation to be enabled","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Ventilation Temperature Difference","2.0",("The outdoor air temperature minus the control zone temperature","must be greater than the ventilation delta T","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Ventilation Temperature Low Limit","15.",("Night ventilation is disabled if any conditioned zone served by","the system falls below this temperature","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Night Venting Flow Fraction","1.",("the fraction (could be > 1) of the design system Flow Rate at which","night ventilation will be done","",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Control Zone Name","","","ZoneNames"))


        self.insertMemo(("depending on zone and outdoor conditions overides fan schedule to do","precooling with outdoor air",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(7)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:NightVentilation")





class AvailabilityManager_HybridVentilation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"HVAC Air Loop Name","",("Enter the name of an AirLoopHVAC object.","",),"AirPrimaryLoops"))
        self.InsertField(FieldObjectlist(self,"Controlled Zone Name","",("the controlled zone name should be a zone where a thermostat or humidistat is located","served by an air primary loop.","",),"ZoneNames"))
        self.InsertField(FieldObjectlist(self,"Ventilation Control Mode Schedule Name","",("The Ventilation control mode contains appropriate integer control types.","0 - uncontrolled (Natural ventilation and HVAC system are controlled by themselves)","1 = Temperature control","2 = Enthalpy control","3 = Dewpoint control","4 = Outdoor ventilation air control","",),"ScheduleNames"))
        self.InsertField(FieldYesNo(self,"Use Weather File Rain Indicators","Yes",("If Yes, ventilation is shutoff when there is rain","If No, there is no rain control","",),["Yes","No",]))
        self.InsertField(FieldReal(self,"Maximum Wind Speed","40.0",("this is the wind speed above which ventilation is shutoff","Units: m/s",),0.0,40.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Outdoor Temperature","-100",("this is the outdoor temperature below which ventilation is shutoff","Units: C",),-100,100,"",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Temperature","100",("this is the outdoor temperature above which ventilation is shutoff","Units: C",),-100,100,"",""))
        self.InsertField(FieldReal(self,"Minimum Outdoor Enthalpy",0,("this is the outdoor Enthalpy below which ventilation is shutoff","Units: J/kg",),"","",0.0,300000.0))
        self.InsertField(FieldReal(self,"Maximum Outdoor Enthalpy",0,("this is the outdoor Enthalpy above which ventilation is shutoff","Units: J/kg",),"","",0,300000.0))
        self.InsertField(FieldReal(self,"Minimum Outdoor Dewpoint","-100",("this is the outdoor temperature below which ventilation is shutoff","Applicable only if Ventilation Control Mode = 3","Units: C",),-100,100,"",""))
        self.InsertField(FieldReal(self,"Maximum Outdoor Dewpoint","100",("this is the outdoor dewpoint above which ventilation is shutoff","Applicable only if Ventilation Control Mode = 3","Units: C",),-100,100,"",""))
        self.InsertField(FieldObjectlist(self,"Minimum Outdoor Ventilation Air Schedule Name","",("Used only if Ventilation Control Mode = 4","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Opening Factor Function of Wind Speed Curve Name","",("linear curve = a + b*WS","quadratic curve = a + b*WS + c*WS**2","WS = wind speed (m/s)","",),"LinearQuadratic Curves"))
        self.InsertField(FieldObjectlist(self,"AirflowNetwork Control Type Schedule Name","",("The schedule is used to incorporate operation of AirflowNetwork large opening","objects and HVAC system operation.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Simple Airflow Control Type Schedule Name","",("The schedule is used to incorporate operation of simple airflow objects and HVAC","system operation.","The simple airflow objects are Ventilation and Mixing only","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"ZoneVentilation Object Name","",("The other ventilation and mixing objects controlled in the same air primary loop","will work in the same way as this ventilation object.","",),"VentilationNames"))


        self.insertMemo(("Depending on zone and outdoor conditions overrides window/door opening controls","to maximize natural ventilation and turn off an HVAC system when ventilation control","conditions are met.",))
        self.addReference("SystemAvailabilityManagers")
        self.setRequired(False)
        self.setMinfields(13)
        self.setGroup("System Availability Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("AvailabilityManager:HybridVentilation")





class AvailabilityManagerAssignmentList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Availability Manager 1 Object Type","","",["AvailabilityManager:Scheduled","AvailabilityManager:ScheduledOn","AvailabilityManager:ScheduledOff","AvailabilityManager:NightCycle","AvailabilityManager:DifferentialThermostat","AvailabilityManager:HighTemperatureTurnOff","AvailabilityManager:HighTemperatureTurnOn","AvailabilityManager:LowTemperatureTurnOff","AvailabilityManager:LowTemperatureTurnOn","AvailabilityManager:NightVentilation",]))
        self.InsertField(FieldObjectlist(self,"Availability Manager 1 Name","","","SystemAvailabilityManagers"))


        self.addReference("SystemAvailabilityManagerLists")
        self.setRequired(False)
        self.setMinfields(3)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(2)
        self.setClassnameIDD("AvailabilityManagerAssignmentList")





class SetpointManager_Scheduled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","","",["Temperature","MaximumTemperature","MinimumTemperature","HumidityRatio","MaximumHumidityRatio","MinimumHumidityRatio","MassFlowRate","MaximumMassFlowRate","MinimumMassFlowRate",]))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which control variable will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:Scheduled")





class SetpointManager_Scheduled_DualSetpoint(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldObjectlist(self,"High Setpoint Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Low Setpoint Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which temperature will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:Scheduled:DualSetpoint")





class SetpointManager_OutdoorAirReset(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldReal(self,"Setpoint at Outdoor Low Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Outdoor Low Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Setpoint at Outdoor High Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Outdoor High Temperature",0,"","","","",""))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which temperature will be set","",)))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("Optional input.","Schedule allows scheduling of the outdoor air reset rule - a schedule value","of 1 means use the first rule; a value of 2 means use the second rule.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Setpoint at Outdoor Low Temperature 2",0,("2nd outdoor air temperature reset rule","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor Low Temperature 2",0,("2nd outdoor air temperature reset rule","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Setpoint at Outdoor High Temperature 2",0,("2nd outdoor air temperature reset rule","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Outdoor High Temperature 2",0,("2nd outdoor air temperature reset rule","Units: C",),"","","",""))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:OutdoorAirReset")





class SetpointManager_SingleZone_Reheat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldReal(self,"Minimum Supply Air Temperature","-99","","","","",""))
        self.InsertField(FieldReal(self,"Maximum Supply Air Temperature","99","","","","",""))
        self.InsertField(FieldObjectlist(self,"Control Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Zone Node Name","",""))
        self.InsertField(FieldText(self,"Zone Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:SingleZone:Reheat")





class SetpointManager_SingleZone_Heating(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldReal(self,"Minimum Supply Air Temperature","-99","","","","",""))
        self.InsertField(FieldReal(self,"Maximum Supply Air Temperature","99","","","","",""))
        self.InsertField(FieldObjectlist(self,"Control Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Zone Node Name","",""))
        self.InsertField(FieldText(self,"Zone Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:SingleZone:Heating")





class SetpointManager_SingleZone_Cooling(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldReal(self,"Minimum Supply Air Temperature","-99","","","","",""))
        self.InsertField(FieldReal(self,"Maximum Supply Air Temperature","99","","","","",""))
        self.InsertField(FieldObjectlist(self,"Control Zone Name","","","ZoneNames"))
        self.InsertField(FieldText(self,"Zone Node Name","",""))
        self.InsertField(FieldText(self,"Zone Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(8)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:SingleZone:Cooling")





class SetpointManager_SingleZone_Humidity_Minimum(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Control Variable","",("Deprecated Field.  This field is not used","",)))
        self.InsertField(FieldText(self,"Schedule Name","",("Deprecated Field.  This field is not used","",)))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which humidity ratio setpoint will be set","",)))
        self.InsertField(FieldText(self,"Control Zone Air Node Name","",("Name of the zone air node for the humidity control zone","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:SingleZone:Humidity:Minimum")





class SetpointManager_SingleZone_Humidity_Maximum(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Control Variable","",("Deprecated Field.  This field is not used","",)))
        self.InsertField(FieldText(self,"Schedule Name","",("Deprecated Field.  This field is not used","",)))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which humidity ratio setpoint will be set","",)))
        self.InsertField(FieldText(self,"Control Zone Air Node Name","",("Name of the zone air node for the humidity control zone","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:SingleZone:Humidity:Maximum")





class SetpointManager_MixedAir(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldText(self,"Reference Setpoint Node Name","",""))
        self.InsertField(FieldText(self,"Fan Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Fan Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:MixedAir")





class SetpointManager_OutdoorAirPretreat(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","","",["Temperature","HumidityRatio","MaximumHumidityRatio","MinimumHumidityRatio",]))
        self.InsertField(FieldReal(self,"Minimum Setpoint Temperature","-99",("Applicable only if Control variable is Temperature","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Setpoint Temperature","99",("Applicable only if Control variable is Temperature","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Setpoint Humidity Ratio","0.00001",("Applicable only if Control variable is","MaximumHumidityRatio, MinimumHumidityRatio, or HumidityRatio - then minimum is 0.00001","Units: kg/kg",),"",1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Setpoint Humidity Ratio","1.0",("Applicable only if Control variable is","MaximumHumidityRatio, MinimumHumidityRatio, or HumidityRatio - then minimum is 0.00001","Units: kg/kg",),"",1.0,"",""))
        self.InsertField(FieldText(self,"Reference Setpoint Node Name","",("The current setpoint at this node is the","desired condition for the Mixed Air Node","This node must have a valid setpoint","which has been set by another setpoint manager","",)))
        self.InsertField(FieldText(self,"Mixed Air Stream Node Name","",("Name of Mixed Air Node","",)))
        self.InsertField(FieldText(self,"Outdoor Air Stream Node Name","",("Name of Outdoor Air Stream Node","",)))
        self.InsertField(FieldText(self,"Return Air Stream Node Name","",("Name of Return Air Stream Node","",)))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature or humidity","ratio will be set","",)))


        self.insertMemo(("This setpoint manager determines the required","conditions at the outdoor air stream node which will","produce the reference setpoint condition at the","mixed air node when mixed with the return air stream",))
        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(11)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:OutdoorAirPretreat")





class SetpointManager_Warmest(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldObjectlist(self,"HVAC Air Loop Name","",("Enter the name of an AirLoopHVAC object","",),"AirPrimaryLoops"))
        self.InsertField(FieldReal(self,"Minimum Setpoint Temperature","12.","","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Setpoint Temperature","18.","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Strategy","MaximumTemperature","",["MaximumTemperature",]))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:Warmest")





class SetpointManager_Coldest(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Temperature","",["Temperature",]))
        self.InsertField(FieldObjectlist(self,"HVAC Air Loop Name","",("Enter the name of an AirLoopHVAC object.","",),"AirPrimaryLoops"))
        self.InsertField(FieldReal(self,"Minimum Setpoint Temperature","20.","","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Setpoint Temperature","50.","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Strategy","MinimumTemperature","",["MinimumTemperature",]))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature will be set","",)))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:Coldest")





class SetpointManager_ReturnAirBypassFlow(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","Flow","",["Flow",]))
        self.InsertField(FieldObjectlist(self,"HVAC Air Loop Name","",("Enter the name of an AirLoopHVAC object.","",),"AirPrimaryLoops"))
        self.InsertField(FieldObjectlist(self,"Temperature Setpoint Schedule Name","","","ScheduleNames"))


        self.insertMemo(("This setpoint manager determines the required","mass flow rate through a return air bypass duct","to meet the specified temperature setpoint",))
        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Setpoint Managers") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:ReturnAirBypassFlow")





class SetpointManager_WarmestTemperatureFlow(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Control Variable","","",["Temperature",]))
        self.InsertField(FieldObjectlist(self,"HVAC Air Loop Name","",("Enter the name of an AirLoopHVAC object.","",),"AirPrimaryLoops"))
        self.InsertField(FieldReal(self,"Minimum Setpoint Temperature","12.","","","",0.0,""))
        self.InsertField(FieldReal(self,"Maximum Setpoint Temperature","18.","","","",0.0,""))
        self.InsertField(FieldChoice(self,"Strategy","TemperatureFirst","",["TemperatureFirst","FlowFirst",]))
        self.InsertField(FieldText(self,"Setpoint Node or NodeList Name","",("Node(s) at which the temperature will be set","",)))
        self.InsertField(FieldReal(self,"Minimum Turndown","1.","","","",0.0,""))


        self.addReference("SetpointManagers")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("SetpointManager:WarmestTemperatureFlow")





class Refrigeration_Case(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","",("This must be a controlled zone and appear in a ZoneHVAC:EquipmentConnections object.","",),"ZoneNames"))
        self.InsertField(FieldReal(self,"Rated Ambient Temperature","23.9","","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Ambient Relative Humidity","55.0","","","",0.0,100.0))
        self.InsertField(FieldReal(self,"Rated Total Cooling Capacity per Unit Length","1900","","","",0.0,""))
        self.InsertField(FieldReal(self,"Rated Latent Heat Ratio","0.3","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Rated Runtime Fraction","0.85","","",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Case Length","3.0","","","",0.0,""))
        self.InsertField(FieldReal(self,"Case Operating Temperature","1.1","","","","",20.0))
        self.InsertField(FieldChoice(self,"Latent Case Credit Curve Type","CaseTemperatureMethod","",["CaseTemperatureMethod","RelativeHumidityMethod","DewpointMethod",]))
        self.InsertField(FieldObjectlist(self,"Latent Case Credit Curve Name","","","CubicCurves"))
        self.InsertField(FieldReal(self,"Standard Case Fan Power per Unit Length","75.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Operating Case Fan Power per Unit Length","75.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Standard Case Lighting Power per Unit Length","90.0","","","","",""))
        self.InsertField(FieldObjectlist(self,"Case Lighting Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Fraction of Lighting Energy to Case","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Case Anti-Sweat Heater Power per Unit Length","0","",0,"","",""))
        self.InsertField(FieldReal(self,"Minimum Anti-Sweat Heater Power per Unit Length","0",("This field is only applicable to the Linear, Dewpoint Method, and","Heat Balance Method anti-sweat heater control types","Units: W/m",),0,"","",""))
        self.InsertField(FieldChoice(self,"Anti-Sweat Heater Control Type","None","",["None","Constant","Linear","DewpointMethod","HeatBalanceMethod",]))
        self.InsertField(FieldReal(self,"Humidity at Zero Anti-Sweat Heater Energy","-10.0",("This field is only applicable to Linear AS heater control type","Zone relative humidity (%) where anti-sweat heater energy is zero","Units: percent",),"","","",""))
        self.InsertField(FieldReal(self,"Case Height","1.5",("This field only applicable to Heat Balance Method AS heater control type","Height must be greater than zero if Heat Balance Method AS heater control is selected","Units: m",),0,"","",""))
        self.InsertField(FieldReal(self,"Fraction of Anti-Sweat Heater Energy to Case","1.0","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Case Defrost Power per Unit Length","0.0",("Used with electric and hot-gas defrost types only","Units: W/m",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Case Defrost Type","OffCycle","",["None","OffCycle","HotGas","Electric","HotGasWithTemperatureTermination","ElectricWithTemperatureTermination",]))
        self.InsertField(FieldObjectlist(self,"Case Defrost Schedule Name","",("A case defrost schedule name is required unless case defrost type = None","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Case Defrost Drip-Down Schedule Name","",("The start time for each defrost period in this drip-down schedule should coincide with","the start time for each defrost period in the case defrost schedule (previous input","field).The length of each defrost drip-down period must be greater than or equal to the","corresponding defrost period specified in the case defrost schedule. This extra time","allows the melted frost to drip from the coil before refrigeration is restarted.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Defrost Energy Correction Curve Type","None",("Case Temperature, Relative Humidity, and Dewpoint Method are applicable to case defrost","types electric with temperature termination and hot-gas with temperature termination only.","",),["None","CaseTemperatureMethod","RelativeHumidityMethod","DewpointMethod",]))
        self.InsertField(FieldObjectlist(self,"Defrost Energy Correction Curve Name","",("Defrost Energy Correction Curve Name is applicable to case defrost types electric","with temperature termination and hot-gas with temperature termination only.","",),"CubicCurves"))
        self.InsertField(FieldReal(self,"Under Case HVAC Return Air Fraction","0.0","",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Refrigerated Case Restocking Schedule Name","",("Schedule values should be in units of Watts per unit case length (W/m)","Leave this field blank if no restocking is to be modeled","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Case Credit Fraction Schedule Name","",("Schedule values should be from 0 to 1","Leave this field blank if no case credit fraction is to be applied","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Design Evaporator Temperature",0,("saturated temperature for pressure leaving case","required for detailed refrigeration system, not for compressor rack","Units: C",),-70.0,40.0,"",""))
        self.InsertField(FieldReal(self,"Average Refrigerant Charge Inventory","0.0",("Units are kg/m","",),"","","",""))


        self.addReference("RefrigerationCaseNames")
        self.setRequired(False)
        self.setMinfields(27)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:Case")





class Refrigeration_CompressorRack(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Heat Rejection Location","Outdoors","",["Outdoors","Zone",]))
        self.InsertField(FieldReal(self,"Design Compressor Rack COP","2.0","","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Compressor Rack COP Function of Temperature Curve Name","","","QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Design Condenser Fan Power","250.0",("Design power for condenser fan(s).","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Condenser Fan Power Function of Temperature Curve Name","","","QuadraticCubicCurves"))
        self.InsertField(FieldChoice(self,"Condenser Type","AirCooled",("Applicable only when Heat Rejection Location is Outdoors.","",),["AirCooled","EvaporativelyCooled","WaterCooled",]))
        self.InsertField(FieldText(self,"Water-Cooled Condenser Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water-Cooled Condenser Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Water-Cooled Loop Flow Type","VariableFlow",("Applicable only when Condenser Type is WaterCooled.","",),["VariableFlow","ConstantFlow",]))
        self.InsertField(FieldObjectlist(self,"Water-Cooled Condenser Outlet Temperature Schedule Name","",("Applicable only when loop Flow type is VariableFlow.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Water-Cooled Condenser Design Flow Rate",0,("Applicable only when loop flow type is ConstantFlow.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Water-Cooled Condenser Maximum Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Water-Cooled Condenser Maximum Water Outlet Temperature","55.0","",10.0,60.0,"",""))
        self.InsertField(FieldReal(self,"Water-Cooled Condenser Minimum Water Inlet Temperature","10.0","",10.0,30.0,"",""))
        self.InsertField(FieldObjectlist(self,"Evaporative Condenser Availability Schedule Name","",("This field is only used for Condenser Type = EvaporativelyCooled.","Schedule values greater than 0 indicate that evaporative cooling of the","condenser is available. This schedule allows the user to define seasonal","shutdown/draining of the water cooling system in cold climate applications.","For periods with schedule values of 0, the condenser operates as AirCooled.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Evaporative Condenser Effectiveness","0.9",("Applicable only for Condenser Type = EvaporativlyCooled.","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldRealAutocalculate(self,"Evaporative Condenser Air Flow Rate","Autocalculate",("Applicable only for Condenser Type = EvaporativelyCooled.","Used to calculate evaporative condenser water use.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Basin Heater Capacity","200.0",("This field is only used for Condenser Type = EvaporativelyCooled and for periods","when the evaporatively cooled condenser is available (field Evaporative Condenser Availability","Schedule Name). For this situation, the heater heats the basin water when the","outdoor air dry-bulb temperature falls below the setpoint temperature, but","only when the condenser fans are off (i.e., no refrigerated case load).","Units: W/K",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Basin Heater Setpoint Temperature","2.0",("Enter the outdoor dry-bulb temperature at which the basin heater turns on.","Units: C",),2.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Design Evaporative Condenser Water Pump Power","1000.0",("Design recirc water pump power for Condenser Type = EvaporativelyCooled.","Applicable only for Condenser Type = EvaporativelyCooled.","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Evaporative Water Supply Tank Name","",("If blank, water supply is from Mains.","Applicable only for Condenser Type = EvaporativelyCooled.","",),"WaterStorageTankNames"))
        self.InsertField(FieldText(self,"Condenser Air Inlet Node Name","",("Applicable only when Heat Rejection Location is Outdoors and Condenser Type is","not WaterCooled; otherwise, leave field blank. If field is left blank with","Heat Rejection Location = Outdoors, then the model assumes that the Inlet Air","conditions are the outdoor air conditions for the current timestep","(e.g., no adjustment for height above ground).","",)))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))
        self.InsertField(FieldObjectlist(self,"Refrigeration Case Name or Caselist Name","",("Enter the name of a Refrigeration:Case object.","If there are more than one refrigerated case, enter the name of a Refrigeration:CaseList object.","",),"RefrigerationCaselistNames"))


        self.addReference("RefrigeratedCaseCompressorRack")
        self.addReference("DesuperHeatingCoilSources")
        self.setRequired(False)
        self.setMinfields(25)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:CompressorRack")





class Refrigeration_CaseList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Refrigerated Case List Name","",""))
        self.InsertField(FieldObjectlist(self,"Case 1 Name","",("Enter the name of a Refrigeration:Case object.","",),"RefrigerationCaseNames"))


        self.addReference("RefrigerationCaseListNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Refrigeration") 
        self.setExtensible(1)
        self.setClassnameIDD("Refrigeration:CaseList")





class Refrigeration_Condenser_AirCooled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Rated Effective Total Heat Rejection Rate Curve Name","",("Rating as per ARI 460","Be sure the rating corresponds to the correct refrigerant","HeatRejection(W)=C1 +C2(Condensing Temp - Entering Air Temp, deg C)","Will be adjusted for elevation automatically","",),"LinearCurves"))
        self.InsertField(FieldReal(self,"Rated Subcooling Temperature","0.0",("must correspond to rating given for total heat rejection effect","Units: C",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Condenser Fan Speed Control Type","Fixed","",["Fixed","VariableSpeed","TwoSpeed",]))
        self.InsertField(FieldReal(self,"Rated Fan Power","250.0",("Power for condenser fan(s) corresponding to rated total heat rejection effect.","Units: W",),0.0,"","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("If field is left blank,","then the model assumes that the inlet air","conditions are the outdoor air conditions for the current timestep","(e.g., no adjustment for height above ground).","",)))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))
        self.InsertField(FieldReal(self,"Condenser Refrigerant Operating Charge Inventory","0.0",("optional input","Units: kg",),"","","",""))
        self.InsertField(FieldReal(self,"Condensate Receiver Refrigerant Inventory","0.0",("optional input","Units: kg",),"","","",""))
        self.InsertField(FieldReal(self,"Condensate Piping Refrigerant Inventory","0.0",("optional input","Units: kg",),"","","",""))


        self.addReference("RefrigerationDetailedCondenserNames")
        self.addReference("CurveLinearNames")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:Condenser:AirCooled")





class Refrigeration_Condenser_EvaporativeCooled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Rated Effective Total Heat Rejection Rate",0,("Rating as per ARI 490","Be sure the rating corresponds to the correct refrigerant","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Rated Subcooling Temperature","0.0",("must correspond to rating given for total heat rejection effect","Units: C",),0.0,"","",""))
        self.InsertField(FieldChoice(self,"Fan Speed Control Type","Fixed",("required for air-cooled condenser","",),["Fixed","VariableSpeed","TwoSpeed",]))
        self.InsertField(FieldReal(self,"Rated Fan Power",0,("Power for condenser fan(s) corresponding to rated total heat rejection effect.","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Approach Temperature Constant Term","6.63",("A1 in delta T = A1 + A2(hrcf) + A3/(hrcf) + A4(Twb)","Units: C",),0.0,20.0,"",""))
        self.InsertField(FieldReal(self,"Approach Temperature Coefficient 2","0.468",("A2 in delta T = A1 + A2(hrcf) +A3/(hrcf) +A4(Twb)","Units: C",),0.0,20.0,"",""))
        self.InsertField(FieldReal(self,"Approach Temperature Coefficient 3","17.93",("A3 in delta T = A1 + A2(hrcf) +A3/(hrcf) +A4(Twb)","Units: C",),0.0,30.0,"",""))
        self.InsertField(FieldReal(self,"Approach Temperature Coefficient 4","-0.322",("A4 in deltaT=A1 + A2(hrcf) +A3/(hrcf) +A4(Twb)","Units: dimensionless",),-20.0,20.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Capacity Factor","0.50",("taken from manufacturer's Heat Rejection Capacity Factor Table","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Capacity Factor","5.0",("taken from manufacturer's Heat Rejection Capacity Factor Table","",),"","","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",("If field is left blank,","then the model assumes that the inlet air","conditions are the outdoor air conditions for the current timestep","(e.g., no adjustment for height above ground).","",)))
        self.InsertField(FieldRealAutocalculate(self,"Rated Air Flow Rate","autocalculate",("Used to calculate evaporative condenser water use and fan energy use.","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Basin Heater Capacity","200.0",("This field is only used for periods","when the evap condenser is available (field Evaporative Condenser Availability","Schedule). For this situation, the heater heats the basin water when the","outdoor air dry-bulb temperature falls below the set point temperature, but","only when the condenser fans are off (i.e., no refrigerated case load).","Units: W/K",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Basin Heater Setpoint Temperature","2.0",("Enter the outdoor dry-bulb temperature at which the basin heater turns on.","Units: C",),2.0,"","",""))
        self.InsertField(FieldRealAutocalculate(self,"Rated Water Pump Power","1000.0",("Design recirculating water pump power.","Units: W",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Evaporative Water Supply Tank Name","",("If blank, water supply is from Mains.","",),"WaterStorageTankNames"))
        self.InsertField(FieldObjectlist(self,"Evaporative Condenser Availability Schedule Name","",("Schedule values greater than 0 indicate that evaporative cooling of the","condenser is available. This schedule allows the user to define seasonal","shutdown/draining of the water cooling system in cold climate applications.","For periods with schedule values of 0, the condenser operates as Air Cooled.","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))
        self.InsertField(FieldReal(self,"Condenser Refrigerant Operating Charge Inventory","0.0",("optional input","Units: kg",),"","","",""))
        self.InsertField(FieldReal(self,"Condensate Receiver Refrigerant Inventory","0.0",("optional input","Units: kg",),"","","",""))
        self.InsertField(FieldReal(self,"Condensate Piping Refrigerant Inventory","0.0",("optional input","Units: kg",),"","","",""))


        self.addReference("RefrigerationDetailedCondenserNames")
        self.setRequired(False)
        self.setMinfields(11)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:Condenser:EvaporativeCooled")





class Refrigeration_Condenser_WaterCooled(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Rated Effective Total Heat Rejection Rate",0,("Rating as per ARI 450","Be sure the rating corresponds to the correct refrigerant","not used in calculations, only for identification and output","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Rated Condensing Temperature",0,("must correspond to rating given for total heat rejection effect","Units: C",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Rated Subcooling Temperature","0.0",("must correspond to rating given for total heat rejection effect","Units: C",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Rated Water Inlet Temperature",0,("must correspond to rating given for total heat rejection effect","Units: C",),0.0,"","",""))
        self.InsertField(FieldText(self,"Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Water Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Water-Cooled Loop Flow Type","VariableFlow",("Applicable only when Condenser Type is Water Cooled.","",),["VariableFlow","ConstantFlow",]))
        self.InsertField(FieldObjectlist(self,"Water Outlet Temperature Schedule Name","",("Applicable only when loop flow type is Variable Flow.","",),"ScheduleNames"))
        self.InsertField(FieldReal(self,"Water Design Flow Rate",0,("note required units must be converted from L/s as specified in ARI 450-2007","Applicable only when loop flow type is Constant Flow.","Units: m3/s",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Water Maximum Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Water Maximum Water Outlet Temperature","55.0","",10.0,60.0,"",""))
        self.InsertField(FieldReal(self,"Water Minimum Water Inlet Temperature","10.0",("related to the minimum allowed refrigeration system condensing temperature","Units: C",),10.0,30.0,"",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))
        self.InsertField(FieldReal(self,"Condenser Refrigerant Operating Charge Inventory",0,("optional input","Units: kg",),"","","",""))
        self.InsertField(FieldReal(self,"Condensate Receiver Refrigerant Inventory",0,("optional input","Units: kg",),"","","",""))
        self.InsertField(FieldReal(self,"Condensate Piping Refrigerant Inventory",0,("optional input","Units: kg",),"","","",""))


        self.addReference("RefrigerationDetailedCondenserNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:Condenser:WaterCooled")





class Refrigeration_Subcooler(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Subcooler Type","LiquidSuction",("plan to add ambient subcoolers at future time","",),["Mechanical","LiquidSuction",]))
        self.InsertField(FieldReal(self,"Liquid Suction Design Subcooling Temperature",0,("Applicable only and required for liquid suction heat exchangers","design liquid suction subcooling","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Design Liquid Inlet Temperature",0,("design inlet temperature on liquid side","Applicable only and required for liquid suction heat exchangers (LSHX)","Units: C",),"","","",""))
        self.InsertField(FieldReal(self,"Design Vapor Inlet Temperature",0,("design inlet temperature on vapor side","Applicable only and required for liquid suction heat exchangers (LSHX)","Design vapor inlet temperature must be less than or equal to","(cont.) the Liquid inlet design temp","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Capacity-Providing System","",("Name of the Refrigeration System Detailed providing cooling capacity","Applicable only and required for mechanical subcoolers","",),"RefrigerationSystemNames"))
        self.InsertField(FieldReal(self,"Outlet Control Temperature",0,("Control Temperature Out for subcooled liquid","Applicable only and required for mechanical subcoolers","Units: C",),"","","",""))


        self.addReference("RefrigerationSubcoolerNames")
        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:Subcooler")





class Refrigeration_Compressor(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Refrigeration Compressor Power Curve Name","",("the input order for the Curve:Bicubic does not","match the ARI 540-2004 Eq. 1 coefficient order","N1 is ARI_C1, N2 is ARI_C2, N3 is ARI_C4, N4 is ARI_C3,","N5 is ARI_C6, N6 is ARI_C5, N7 is ARI_C7, N8 is ARI_C10,","N9 is ARI_C8, N10 is ARI_C9,","N11 is Minimum Suction dewpoint temperature,","N12 is Maximum Suction dewpoint temperature,","N13 is Minimum Discharge dewpoint temperature,","N14 is Maximum Discharge dewpoint temperature","",),"BiCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Refrigeration Compressor Capacity Curve Name","",("the input order for the Curve:Bicubic does not","match the ARI 540-2004 Eq. 1 coefficient order","N1 is ARI_C1, N2 is ARI_C2, N3 is ARI_C4, N4 is ARI_C3,","N5 is ARI_C6, N6 is ARI_C5, N7 is ARI_C7, N8 is ARI_C10,","N9 is ARI_C8, N10 is ARI_C9,","N11 is Minimum Suction dewpoint temperature,","N12 is Maximum Suction dewpoint temperature,","N13 is Minimum Discharge dewpoint temperature,","N14 is Maximum Discharge dewpoint temperature","",),"BiCubicCurves"))
        self.InsertField(FieldChoice(self,"Superheat Rating Type","","",["RatedSuperheat","RatedReturnGasTemperature",]))
        self.InsertField(FieldReal(self,"Compressor Rated Suction Temperature",0,("must correspond to Superheat Rating Type","Units: C",),"","","",""))
        self.InsertField(FieldChoice(self,"Subcooling Rating Type","","",["RatedSubcooling","RatedLiquidTemperature",]))
        self.InsertField(FieldReal(self,"Compressor Rated Subcooling",0,("must correspond to Subcooling Rating Type","Units: C",),"","","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.addReference("RefrigerationCompressorNames")
        self.setRequired(False)
        self.setMinfields(4)
        self.setGroup("Refrigeration") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:Compressor")





class Refrigeration_CompressorList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Refrigeration Compressor 1 Name","",("Enter the name of a Refrigeration:Compressor object.","",),"RefrigerationCompressorNames"))


        self.insertMemo(("IMPORTANT: List compressor names in the order in which the compressors will be loaded","Data is available for many compressors in the RefrigerationCompressor.idf dataset",))
        self.addReference("RefrigerationCompressorListNames")
        self.setRequired(False)
        self.setMinfields(2)
        self.setGroup("Refrigeration") 
        self.setExtensible(1)
        self.setClassnameIDD("Refrigeration:CompressorList")





class Refrigeration_System(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Refrigerated Case or CaseList Name","","","RefrigerationCaseNames"))
        self.InsertField(FieldObjectlist(self,"Refrigeration Condenser Name","","","RefrigerationDetailedCondenserNames"))
        self.InsertField(FieldObjectlist(self,"Compressor Name or CompressorList Name","","","RefrigerationCompressorNames"))
        self.InsertField(FieldReal(self,"Minimum Condensing Temperature",0,("related to the proper operation of the thermal expansion","valves and compressors","Units: C",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Refrigeration System Working Fluid Type","",("Fluid property data for the refrigerant must be entered.","The fluid property data, including the objects:","FluidProperties:Names, FluidProperties:Temperatures,","FluidProperties:Saturated and FluidProperties:Superheated","can be copied from the FluidPropertiesRefData.idf dataset","",),"FluidNames"))
        self.InsertField(FieldChoice(self,"Suction Temperature Control Type","ConstantSuctionTemperature","",["FloatSuctionTemperature","ConstantSuctionTemperature",]))
        self.InsertField(FieldObjectlist(self,"Mechanical Subcooler Name","",("Optional Field","Recipient of refrigeration capacity","receives cool liquid to help meet aggregate case loads","",),"RefrigerationSubcoolerNames"))
        self.InsertField(FieldObjectlist(self,"Liquid Suction Heat Exchanger Subcooler Name","",("Optional Field","Liquid Suction Heat Exchanger Name, or leave blank","",),"RefrigerationSubcoolerNames"))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))


        self.addReference("RefrigerationDetailedSystemNames")
        self.addReference("DesuperHeatingCoilSources")
        self.addReference("DesuperheaterWaterHeater")
        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("Demand Limiting Controls") 
        self.setExtensible(-1)
        self.setClassnameIDD("Refrigeration:System")





class DemandManager_ExteriorLights(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("If blank, defaults to always on","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Limit Control","","",["Off","Fixed",]))
        self.InsertField(FieldInt(self,"Minimum Limit Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),"","",0,""))
        self.InsertField(FieldReal(self,"Maximum Limit Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Limit Step Change",0,("Not yet implemented","",),"","","",""))
        self.InsertField(FieldChoice(self,"Selection Control","","",["All","RotateMany","RotateOne",]))
        self.InsertField(FieldInt(self,"Rotation Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),0,"","",""))
        self.InsertField(FieldObjectlist(self,"Exterior Lights 1 Name","",("Enter the name of an Exterior:Lights object.","",),"ExteriorLightsNames"))


        self.addReference("DemandManagerNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Demand Limiting Controls") 
        self.setExtensible(1)
        self.setClassnameIDD("DemandManager:ExteriorLights")





class DemandManager_Lights(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("If blank, defaults to always on","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Limit Control","","",["Off","Fixed",]))
        self.InsertField(FieldInt(self,"Minimum Limit Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),"","",0,""))
        self.InsertField(FieldReal(self,"Maximum Limit Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Limit Step Change",0,("Not yet implemented","",),"","","",""))
        self.InsertField(FieldChoice(self,"Selection Control","","",["All","RotateMany","RotateOne",]))
        self.InsertField(FieldInt(self,"Rotation Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),0,"","",""))
        self.InsertField(FieldObjectlist(self,"Lights 1 Name","","","LightsNames"))


        self.addReference("DemandManagerNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Demand Limiting Controls") 
        self.setExtensible(1)
        self.setClassnameIDD("DemandManager:Lights")





class DemandManager_ElectricEquipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("If blank, defaults to always on","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Limit Control","","",["Off","Fixed",]))
        self.InsertField(FieldInt(self,"Minimum Limit Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),"","",0,""))
        self.InsertField(FieldReal(self,"Maximum Limit Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Limit Step Change",0,("Not yet implemented","",),"","","",""))
        self.InsertField(FieldChoice(self,"Selection Control","","",["All","RotateMany","RotateOne",]))
        self.InsertField(FieldInt(self,"Rotation Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),0,"","",""))
        self.InsertField(FieldObjectlist(self,"Electric Equipment 1 Name","",("Enter the name of an ElectricEquipment object.","",),"ElectricEquipmentNames"))


        self.addReference("DemandManagerNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Demand Limiting Controls") 
        self.setExtensible(1)
        self.setClassnameIDD("DemandManager:ElectricEquipment")





class DemandManager_Thermostats(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Availability Schedule Name","",("If blank, defaults to always on","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Reset Control","","",["Off","Fixed",]))
        self.InsertField(FieldInt(self,"Minimum Reset Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),"","",0,""))
        self.InsertField(FieldReal(self,"Maximum Heating Setpoint Reset",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Cooling Setpoint Reset",0,"","","","",""))
        self.InsertField(FieldReal(self,"Reset Step Change",0,("Not yet implemented","",),"","","",""))
        self.InsertField(FieldChoice(self,"Selection Control","","",["All","RotateMany","RotateOne",]))
        self.InsertField(FieldInt(self,"Rotation Duration",0,("If blank, duration defaults to the timestep","Units: minutes",),0,"","",""))
        self.InsertField(FieldObjectlist(self,"Thermostat 1 Name","",("Enter the name of a ZoneControl:Thermostat object.","",),"ZoneControlThermostaticNames"))


        self.addReference("DemandManagerNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Demand Limiting Controls") 
        self.setExtensible(1)
        self.setClassnameIDD("DemandManager:Thermostats")





class DemandManagerAssignmentList(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Meter Name","",""))
        self.InsertField(FieldObjectlist(self,"Demand Limit Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Demand Limit Safety Fraction",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Billing Period Schedule Name","",("This field should reference the same schedule as the month schedule name field of the","UtilityCost:Tariff object, if used.","If blank, defaults to regular divisions between months.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Peak Period Schedule Name","",("This field should reference the same schedule as the period schedule name field of the","UtilityCost:Tariff object, if used.","If blank, defaults to always on peak.","",),"ScheduleNames"))
        self.InsertField(FieldInt(self,"Demand Window Length",0,"","","",0,""))
        self.InsertField(FieldChoice(self,"Demand Manager Priority","","",["Sequential","All",]))
        self.InsertField(FieldChoice(self,"DemandManager 1 Object Type","","",["DemandManager:ExteriorLights","DemandManager:Lights","DemandManager:ElectricEquipment","DemandManager:Thermostats",]))
        self.InsertField(FieldObjectlist(self,"DemandManager 1 Name","","","DemandManagerNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(2)
        self.setClassnameIDD("DemandManagerAssignmentList")





class Generator_InternalCombustionEngine(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Rated Power Output",0,"","","","",""))
        self.InsertField(FieldText(self,"Electric Circuit Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Shaft Power Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Jacket Heat Recovery Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Lube Heat Recovery Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Total Exhaust Energy Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Exhaust Temperature Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","",),"QuadraticCurves"))
        self.InsertField(FieldReal(self,"Coefficient 1 of U-Factor Times Area Curve",0,("curve = C1 * Generator Rated Power Output**C2","",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of U-Factor Times Area Curve",0,("curve = C1 * Generator Rated Power Output**C2","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Exhaust Flow per Unit of Power Output",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Minimum Exhaust Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fuel Higher Heating Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("if non-zero, then inlet, outlet nodes must be entered.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Heat Recovery Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","Diesel","",["NaturalGas","PropaneGas","Diesel","Gasoline","FuelOil#1","FuelOil#2",]))
        self.InsertField(FieldReal(self,"Heat Recovery Maximum Temperature","80.0","",0.0,100.0,"",""))


        self.insertMemo(("This generator model is the empirical model from the Building Loads","and System Thermodynamics (BLAST) program.  Engine performance","curves are generated by fitting catalog data to second order","polynomial equations.  Three sets of coefficients are required.",))
        self.addReference("GeneratorNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:InternalCombustionEngine")





class Generator_CombustionTurbine(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Rated Power Output",0,"","","","",""))
        self.InsertField(FieldText(self,"Electric Circuit Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Part Load Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Part Load Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Optimum Part Load Ratio",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Part Load Based Fuel Input Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","this curve is multiplied to the Temperature Based Fuel Input Curve","to determine Fuel Energy In","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Temperature Based Fuel Input Curve Name","",("curve = a + b*AT + c*AT**2","AT = Ambient Delta T","this curve is multiplied to the Part Load Based Fuel Input Curve","to determine Fuel Energy In","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Exhaust Flow Curve Name","",("curve = a + b*AT + c*AT**2","AT = Ambient Delta T","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Part Load Based Exhaust Temperature Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","this curve is multiplied to the Temperature Based Exhaust Temperature Curve","to determine Exhaust Temperature","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Temperature Based Exhaust Temperature Curve Name","",("curve = a + b*AT + c*AT**2","AT = Ambient Delta T","this curve is multiplied to the Part Load Based Exhaust Temperatuer Curve","to determine Exhaust Temperature","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Heat Recovery Lube Energy Curve Name","",("curve = a + b*PLR + c*PLR**2","PLR = Ratio of Generator Load to Rated Power Output","",),"QuadraticCurves"))
        self.InsertField(FieldReal(self,"Coefficient 1 of U-Factor Times Area Curve",0,("curve = C1 * Rated Power Output**C2","",),"","","",""))
        self.InsertField(FieldReal(self,"Coefficient 2 of U-Factor Times Area Curve",0,("curve = C1 * Rated Power Output**C2","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Exhaust Flow per Unit of Power Output",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Minimum Exhaust Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Air Inlet Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fuel Higher Heating Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design Heat Recovery Water Flow Rate","0.0",("if non-zero, then inlet, outlet nodes must be entered.","Units: m3/s",),0.0,"","",""))
        self.InsertField(FieldText(self,"Heat Recovery Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Outlet Node Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","NaturalGas","",["NaturalGas","PropaneGas","Diesel","Gasoline","FuelOil#1","FuelOil#2",]))
        self.InsertField(FieldReal(self,"Heat Recovery Maximum Temperature","80.0","",0.0,100.0,"",""))
        self.InsertField(FieldText(self,"Outdoor Air Inlet Node Name","",("Enter the name of an outdoor air node","",)))


        self.insertMemo(("This generator model is the empirical model from the Building Loads","and System Thermodynamics (BLAST) program.  Generator performance","curves are generated by fitting catalog data to second order","polynomial equations.  Three sets of coefficients are required.",))
        self.addReference("GeneratorNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:CombustionTurbine")





class Generator_MicroTurbine(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Reference Electrical Power Output",0,"","","",0.0,""))
        self.InsertField(FieldReal(self,"Minimum Full Load Electrical Power Output","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Full Load Electrical Power Output",0,("If left blank, Maximum Full Load Electrical Power Output will be set","equal to the Reference Electrical Power Output.","Units: W",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Reference Electrical Efficiency Using Lower Heating Value",0,("Electric power output divided by fuel energy input (LHV basis)","at reference conditions.","",),"",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Reference Combustion Air Inlet Temperature","15.0","","","","",""))
        self.InsertField(FieldReal(self,"Reference Combustion Air Inlet Humidity Ratio","0.00638","","","",0.0,""))
        self.InsertField(FieldReal(self,"Reference Elevation","0.0","",-300.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Electrical Power Function of Temperature and Elevation Curve Name","",("curve = a + b*T + c*T**2 + d*Elev + e*Elev**2 + f*T*Elev","T = combustion air inlet temperature (C)","Elev = elevation (m)","",),"BiQuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Electrical Efficiency Function of Temperature Curve Name","",("Quadratic curve = a + b*T + c*T**2","Cubic curve = a + b*T + c*T**2 + d*T**3","T = combustion air inlet temperature (C)","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Electrical Efficiency Function of Part Load Ratio Curve Name","",("Quadratic curve = a + b*PLR + c*PLR**2","Cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = ratio of Generator Load to Steady-State Electrical Power Output at","current operating conditions","",),"QuadraticCubicCurves"))
        self.InsertField(FieldChoice(self,"Fuel Type","NaturalGas","",["NaturalGas","PropaneGas",]))
        self.InsertField(FieldReal(self,"Fuel Higher Heating Value","50000","","","",0.0,""))
        self.InsertField(FieldReal(self,"Fuel Lower Heating Value","45450","","","",0.0,""))
        self.InsertField(FieldReal(self,"Standby Power","0.0",("Electric power consumed when the generator is available but not being called","by the Electric Load Center.","Units: W",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Ancillary Power","0.0",("Electric power consumed by ancillary equipment (e.g., external fuel pressurization pump).","Set to zero if Reference Electrical Power Output is the 'net' value (ancillary power","already deducted). Input value is positive, but indicates negative electric generation.","Units: W",),0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Ancillary Power Function of Fuel Input Curve Name","",("Quadratic curve = a + b*mdot + c*mdot**2","mdot = fuel mass flow rate (kg/s)","If left blank, model assumes ancillary power defined in previous field is constant","whenever the generator is operating.","",),"QuadraticCurves"))
        self.InsertField(FieldText(self,"Heat Recovery Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Reference Thermal Efficiency Using Lower Heat Value","0.0",("Reference thermal efficiency (heat recovery to water) based on the","Lower Heating Value (LHV) of the fuel.","",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Reference Inlet Water Temperature",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Heat Recovery Water Flow Operating Mode","PlantControl",("PlantControl means the heat recovery water flow rate is determined by the plant,","but the user needs to supply a heat recovery water flow rate.","InternalControl means the heat recovery water flow rate is controlled by this generator.","If 'InternalControl' is selected, then the user needs to supply a reference heat","recovery water flow rate and optionally the name of a heat recovery flow rate modifier curve.","",),["PlantControl","InternalControl",]))
        self.InsertField(FieldReal(self,"Reference Heat Recovery Water Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Heat Recovery Water Flow Rate Function of Temperature and Power Curve Name","",("curve = a + b*T + c*T**2 + d*Pnet + e*Pnet + f*T*Pnet","T = heat recovery inlet water temperature","Pnet = net power output = electric power output - ancillary power","If left blank, model assumes the heat recovery water flow rate is constant whenever the","generator is operating, at the Reference HR Water Flow Rate defined in the previous field.","",),"BiQuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Thermal Efficiency Function of Temperature and Elevation Curve Name","",("Bicubic curve = a + b*T + c*T**2 + d*Elev + e*Elev**2 + f*T*Elev + g*T**3 + h*Elev**3 + i*T**2*Elev + j*T*Elev**2","Biquadratic curve = a + b*T + c*T**2 + d*Elev + e*Elev**2 + f*T*Elev","T = combustion air inlet temperature (C)","Elev = elevation (m)","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"Bicubic BiquadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Heat Recovery Rate Function of Part Load Ratio Curve Name","",("Quadratic curve = a + b*PLR + c*PLR**2","Cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = ratio of Generator Load to Steady-State Electrical Power Output at","current operating conditions","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Heat Recovery Rate Function of Inlet Water Temperature Curve Name","",("Quadratic curve = a + b*T + c*T**2","T = inlet water temperature (C)","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Heat Recovery Rate Function of Water Flow Rate Curve Name","",("Quadratic curve = a + b*Flow + c*Flow**2","Flow = flow rate of water through the heat exchanger (m3/s)","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"QuadraticCurves"))
        self.InsertField(FieldReal(self,"Minimum Heat Recovery Water Flow Rate","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Heat Recovery Water Flow Rate","0.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Maximum Heat Recovery Water Temperature",0,"","","","",""))
        self.InsertField(FieldText(self,"Combustion Air Inlet Node Name","",("Must be an outdoor air node.","",)))
        self.InsertField(FieldText(self,"Combustion Air Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Reference Exhaust Air Mass Flow Rate",0,"","","",0.0,""))
        self.InsertField(FieldObjectlist(self,"Exhaust Air Flow Rate Function of Temperature Curve Name","",("Quadratic curve = a + b*T + c*T**2","Cubic curve = a + b*T + c*T**2 + d*T**3","T = combustion air inlet temperature (C)","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Exhaust Air Flow Rate Function of Part Load Ratio Curve Name","",("Quadratic curve = a + b*PLR + c*PLR**2","Cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = ratio of Generator Load to Steady-State Electrical Power Output at","current operating conditions.","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldReal(self,"Nominal Exhaust Air Outlet Temperature",0,("Exhaust air outlet temperature at reference conditions.","",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Exhaust Air Temperature Function of Temperature Curve Name","",("Quadratic curve = a + b*T + c*T**2","Cubic curve = a + b*T + c*T**2 + d*T**3","T = combustion air inlet temperature (C)","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"QuadraticCubicCurves"))
        self.InsertField(FieldObjectlist(self,"Exhaust Air Temperature Function of Part Load Ratio Curve Name","",("Quadratic curve = a + b*PLR + c*PLR**2","Cubic curve = a + b*PLR + c*PLR**2 + d*PLR**3","PLR = ratio of Generator Load to Steady-State Electrical Power Output at","current operating conditions.","If field is left blank, model assumes this modifier equals 1 for entire simulation.","",),"QuadraticCubicCurves"))


        self.addReference("GeneratorNames")
        self.setRequired(False)
        self.setMinfields(11)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:MicroTurbine")





class Generator_Photovoltaic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Surface Name","","","AllShadingAndHTSurfNames"))
        self.InsertField(FieldChoice(self,"Photovoltaic Performance Object Type","","",["PhotovoltaicPerformance:Simple","PhotovoltaicPerformance:EquivalentOne-Diode","PhotovoltaicPerformance:Sandia",]))
        self.InsertField(FieldObjectlist(self,"Module Performance Name","",("PV array modeling details","",),"PVModules"))
        self.InsertField(FieldChoice(self,"Heat Transfer Integration Mode","Decoupled","",["Decoupled","DecoupledUllebergDynamic","IntegratedSurfaceOutsideFace","IntegratedTranspiredCollector","IntegratedExteriorVentedCavity","PhotovoltaicThermalSolarCollector",]))
        self.InsertField(FieldReal(self,"Number of Modules in Parallel","1","",1,"","",""))
        self.InsertField(FieldReal(self,"Number of Modules in Series","1","",1,"","",""))


        self.addReference("GeneratorNames")
        self.addReference("PVGeneratorNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:Photovoltaic")





class PhotovoltaicPerformance_Simple(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Fraction of Surface Area with Active Solar Cells",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Conversion Efficiency Input Mode","","",["Fixed","Scheduled",]))
        self.InsertField(FieldReal(self,"Value for Cell Efficiency if Fixed",0,("Efficiency = (power generated [W])/(incident solar[W])","",),0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Efficiency Schedule Name","","","ScheduleNames"))


        self.addReference("PVModules")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("PhotovoltaicPerformance:Simple")





class PhotovoltaicPerformance_EquivalentOne_Diode(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Cell type","","",["CrystallineSilicon","AmorphousSilicon",]))
        self.InsertField(FieldInt(self,"Number of Cells in Series","36","",0,"","",""))
        self.InsertField(FieldReal(self,"Active Area","0.89",("The total power output of the array is determined by the","number of modules (see above).  The Active Area is only","used to calculate the PV Array Efficiency report variable.","Units: m2",),0.1,"","",""))
        self.InsertField(FieldReal(self,"Transmittance Absorptance Product","0.95","",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Semiconductor Bandgap","1.12","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Shunt Resistance","1000000.0","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Short Circuit Current","6.5","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Open Circuit Voltage","21.6","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Reference Temperature","25","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Reference Insolation","1000","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Module Current at Maximum Power","5.9",("Single module current at the maximum power point","and reference conditions.  Module Current, Module Voltage,","Number of Modules in Parallel and Number of Modules in Series","determine the maximum power output of the array.","Units: A",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Module Voltage at Maximum Power","17",("Single module voltage at the maximum power point","and reference conditions.  Module Current, Module Voltage,","Number of Modules in Parallel and Number of Modules in Series","determine the maximum power output of the array.","Units: V",),0.0,"","",""))
        self.InsertField(FieldReal(self,"Temperature Coefficient of Short Circuit Current","-0.079","","","","",""))
        self.InsertField(FieldReal(self,"Temperature Coefficient of Open Circuit Voltage","0.02","","","","",""))
        self.InsertField(FieldReal(self,"Nominal Operating Cell Temperature Test Ambient Temperature","20","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal Operating Cell Temperature Test Cell Temperature","40","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Nominal Operating Cell Temperature Test Insolation","800","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Module Heat Loss Coefficient","30","",0.0,"","",""))
        self.InsertField(FieldReal(self,"Total Heat Capacity","50000","",0.0,"","",""))


        self.addReference("PVModules")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("PhotovoltaicPerformance:EquivalentOne-Diode")





class PhotovoltaicPerformance_Sandia(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Active Area","1.0",("(m2, single module)","Units: m2",),0.0,"","",""))
        self.InsertField(FieldInt(self,"Number of Cells in Series","1","",1,"","",""))
        self.InsertField(FieldInt(self,"Number of Cells in Parallel","1","",1,"","",""))
        self.InsertField(FieldReal(self,"Short Circuit Current",0,("(Amps)","Units: A",),"","","",""))
        self.InsertField(FieldReal(self,"Open Circuit Voltage",0,("(Volts)","Units: V",),"","","",""))
        self.InsertField(FieldReal(self,"Current at Maximum Power Point",0,("(Amps)","Units: A",),"","","",""))
        self.InsertField(FieldReal(self,"Voltage at Maximum Power Point",0,("(Volts)","Units: V",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter aIsc",0,("(1/degC)","Units: 1/K",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter aImp",0,("(1/degC)","Units: 1/K",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c0",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c1",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter BVoc0",0,("(Volts/degC)","Units: V/K",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter mBVoc",0,("(Volts/degC)","Units: V/K",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter BVmp0",0,("(Volts/degC)","Units: V/K",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter mBVmp",0,("(Volts/degC)","Units: V/K",),"","","",""))
        self.InsertField(FieldReal(self,"Diode Factor",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c2",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c3",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter a0",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter a1",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter a2",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter a3",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter a4",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter b0",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter b1",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter b2",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter b3",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter b4",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter b5",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter Delta(Tc)",0,("(deg C)","Units: deltaC",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter fd",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter a",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter b",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c4",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c5",0,("(nondimensional)","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter Ix0",0,("(Amps)","",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter Ixx0",0,("(Amps)","",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c6",0,("(nondimensional)","",),"","","",""))
        self.InsertField(FieldReal(self,"Sandia Database Parameter c7",0,("(nondimensional)","",),"","","",""))


        self.addReference("PVModules")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("PhotovoltaicPerformance:Sandia")





class Generator_FuelCell(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Power Module Name","",("Enter then name of a Generator:FuelCell:PowerModule object.","",)))
        self.InsertField(FieldText(self,"Air Supply Name","",("Enter then name of a Generator:FuelCell:AirSupply object.","",)))
        self.InsertField(FieldText(self,"Fuel Supply Name","",("Enter then name of a Generator:FuelSupply object.","",)))
        self.InsertField(FieldText(self,"Water Supply Name","",("Enter then name of a Generator:FuelCell:WaterSupply object.","",)))
        self.InsertField(FieldText(self,"Auxiliary Heater Name","",("Enter the name of a Generator:FuelCell:AuxiliaryHeater object.","",)))
        self.InsertField(FieldText(self,"Heat Exchanger Name","",("Enter the name of a Generator:FuelCell:ExhaustGasToWaterHeatExchanger object.","",)))
        self.InsertField(FieldText(self,"Electrical Storage Name","",("Enter the name of a Generator:FuelCell:ElectricalStorage object.","",)))
        self.InsertField(FieldText(self,"Inverter Name","",("Enter the name of a Generator:FuelCell:Inverter object.","",)))
        self.InsertField(FieldText(self,"Stack Cooler Name","",("Enter the name of a Generator:FuelCell:StackCooler object.","optional, used for PEMFC","",)))


        self.insertMemo(("This generator model is the FC model from IEA Annex 42",))
        self.addReference("GeneratorNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelCell")





class Generator_FuelCell_PowerModule(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Efficiency Curve Mode","","",["Annex42","Normalized",]))
        self.InsertField(FieldObjectlist(self,"Efficiency Curve Name","","","QuadraticCurves"))
        self.InsertField(FieldReal(self,"Nominal Efficiency",0,("This field is not used.","",),"","","",""))
        self.InsertField(FieldReal(self,"Nominal Electrical Power",0,("This field is not used","Units: W",),"","","",""))
        self.InsertField(FieldReal(self,"Number of Stops at Start of Simulation",0,("this is Nstops in SOFC model specification","",),"","","",""))
        self.InsertField(FieldReal(self,"Cycling Performance Degradation Coefficient",0,("this is D in SOFC model specification","",),"","","",""))
        self.InsertField(FieldReal(self,"Number of Run Hours at Beginning of Simulation",0,"","","","",""))
        self.InsertField(FieldReal(self,"Accumulated Run Time Degradation Coefficient",0,("this is L in SOFC model specification","",),"","","",""))
        self.InsertField(FieldReal(self,"Run Time Degradation Initiation Time Threshold",0,"","","","",""))
        self.InsertField(FieldReal(self,"Power Up Transient Limit",0,("Maximum rate of change in elecrical output [power increasing]","Units: W/s",),"","","",""))
        self.InsertField(FieldReal(self,"Power Down Transient Limit",0,("Maximum rate of change in elecrical output [power decreasing]","Enter positive value for rate of change","Units: W/s",),"","","",""))
        self.InsertField(FieldReal(self,"Start Up Time",0,("Time from start up to normal operation","Units: s",),"","","",""))
        self.InsertField(FieldReal(self,"Start Up Fuel",0,"","","","",""))
        self.InsertField(FieldReal(self,"Start Up Electricity Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Start Up Electricity Produced",0,"","","","",""))
        self.InsertField(FieldReal(self,"Shut Down Time",0,"","","","",""))
        self.InsertField(FieldReal(self,"Shut Down Fuel",0,"","","","",""))
        self.InsertField(FieldReal(self,"Shut Down Electricity Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Ancilliary Electricity Constant Term",0,"","","","",""))
        self.InsertField(FieldReal(self,"Ancilliary Electricity Linear Term",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Skin Loss Calculation Mode","","",["ConstantRate","UAForProcessGasTemperature","QuadraticFunctionOfFuelRate",]))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Skin Loss Radiative Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Constant Skin Loss Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Skin Loss U-Factor Times Area Term",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Skin Loss Quadratic Curve Name","",("curve is function of fuel use rate","",),"QuadraticCurves"))
        self.InsertField(FieldReal(self,"Dilution Air Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Heat loss to Dilution Air",0,"","","","",""))
        self.InsertField(FieldText(self,"Dilution Inlet Air Node Name","",""))
        self.InsertField(FieldText(self,"Dilution Outlet Air Node Name","",""))
        self.InsertField(FieldReal(self,"Minimum Operating Point",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Operating Point",0,"","","","",""))


        self.addReference("FCPMNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelCell:PowerModule")





class Generator_FuelCell_AirSupply(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Blower Power Curve Name","","","QubicCurves"))
        self.InsertField(FieldReal(self,"Blower Heat Loss Factor",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Air Supply Rate Calculation Mode","","",["AirRatiobyStoics","QuadraticFunctionofElectricPower","QuadraticFunctionofFuelRate",]))
        self.InsertField(FieldReal(self,"Stoichiometric Ratio",0,("This is the excess air *stoics*","the value entered is incremented by 1 in the model.","",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Air Rate Function of Electric Power Curve Name","","","QuadraticCurves"))
        self.InsertField(FieldReal(self,"Air Rate Air Temperature Coefficient",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Air Rate Function of Fuel Rate Curve Name","","","QuadraticCurves"))
        self.InsertField(FieldChoice(self,"Air Intake Heat Recovery Mode","","",["NoRecovery","RecoverBurnerInverterStorage","RecoverAuxiliaryBurner","RecoverInverterandStorage","RecoverInverter","RecoverElectricalStorage",]))
        self.InsertField(FieldChoice(self,"Air Supply Constituent Mode","","",["AmbientAir","UserDefinedConstituents",]))
        self.InsertField(FieldReal(self,"Number of UserDefined Constituents",0,"","",5,"",""))
        self.InsertField(FieldChoice(self,"Constituent 1 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon",]))
        self.InsertField(FieldReal(self,"Molar Fraction 1",0,"",0.0,1.0,"",""))


        self.addReference("FCAirSupNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(2)
        self.setClassnameIDD("Generator:FuelCell:AirSupply")





class Generator_FuelCell_WaterSupply(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Reformer Water Flow Rate Function of Fuel Rate Curve Name","","","QuadraticCurves"))
        self.InsertField(FieldObjectlist(self,"Reformer Water Pump Power Function of Fuel Rate Curve Name","","","QubicCurves"))
        self.InsertField(FieldReal(self,"Pump Heat Loss Factor",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Water Temperature Modeling Mode","","",["TemperatureFromAirNode","TemperatureFromWaterNode","TemperatureFromSchedule","MainsWaterTemperature",]))
        self.InsertField(FieldText(self,"Water Temperature Reference Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Water Temperature Schedule Name","","","ScheduleNames"))


        self.addReference("FCWaterSupNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelCell:WaterSupply")





class Generator_FuelCell_AuxiliaryHeater(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Excess Air Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Ancilliary Power Constant Term",0,"","","","",""))
        self.InsertField(FieldReal(self,"Ancilliary Power Linear Term",0,"","","","",""))
        self.InsertField(FieldReal(self,"Skin Loss U-Factor Times Area Value",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Skin Loss Destination","","",["SurroundingZone","AirInletForFuelCell",]))
        self.InsertField(FieldText(self,"Zone Name to Receive Skin Losses","",""))
        self.InsertField(FieldChoice(self,"Heating Capacity Units","","",["Watts","kmol/s",]))
        self.InsertField(FieldReal(self,"Maximum Heating Capacity in Watts",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Heating Capacity in Watts",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Heating Capacity in Kmol per Second",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Heating Capacity in Kmol per Second",0,"","","","",""))


        self.addReference("FCAuxHeatNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelCell:AuxiliaryHeater")





class Generator_FuelCell_ExhaustGasToWaterHeatExchanger(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Heat Recovery Water Maximum Flow Rate",0,"","","","",""))
        self.InsertField(FieldText(self,"Exhaust Outlet Air Node Name","",""))
        self.InsertField(FieldChoice(self,"Heat Exchanger Calculation Method","","",["FixedEffectiveness","EmpiricalUAeff","FundementalUAeff","Condensing",]))
        self.InsertField(FieldReal(self,"Method 1 Heat Exchanger Effectiveness",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 2 Parameter hxs0",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 2 Parameter hxs1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 2 Parameter hxs2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 2 Parameter hxs3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 2 Parameter hxs4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 h0Gas Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 NdotGasRef Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 n Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 Gas Area",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 h0 Water Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 N dot Water ref Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 m Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 Area Water Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 3 F Adjustment Factor",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 4 hxl1 Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 4 hxl2 Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Method 4 Condensation Threshold",0,"","","","",""))


        self.addReference("FCExhaustHXNames,")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelCell:ExhaustGasToWaterHeatExchanger")





class Generator_FuelCell_ElectricalStorage(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Choice of Model","","",["SimpleEfficiencyWithConstraints",]))
        self.InsertField(FieldReal(self,"Nominal Charging Energetic Efficiency",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Nominal Discharging Energetic Efficiency",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Simple Maximum Capacity",0,"","","","",""))
        self.InsertField(FieldReal(self,"Simple Maximum Power Draw",0,"","","","",""))
        self.InsertField(FieldReal(self,"Simple Maximum Power Store",0,"","","","",""))
        self.InsertField(FieldReal(self,"Initial Charge State",0,"","","","",""))


        self.addReference("FCStorageNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelCell:ElectricalStorage")





class Generator_FuelCell_Inverter(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Inverter Efficiency Calculation Mode","","",["Quadratic","Constant",]))
        self.InsertField(FieldReal(self,"Inverter Efficiency",0,"",0.0,1.0,"",""))
        self.InsertField(FieldObjectlist(self,"Efficiency Function of DC Power Curve Name","","","QuadraticCurves"))


        self.addReference("FCInverterNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelCell:Inverter")





class  Generator_FuelCell_StackCooler(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Heat Recovery Water Outlet Node Name","",""))
        self.InsertField(FieldReal(self,"Nominal Stack Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Actual Stack Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient r0",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient r1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient r2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient r3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Coolant Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Cooler U-Factor Times Area Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Fs-cogen Adjustment Factor",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Cogeneration Exchanger Area",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Cogeneration Exchanger Nominal Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Cogeneration Exchanger Nominal Heat Transfer Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Cogeneration Exchanger Nominal Heat Transfer Coefficient Exponent",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Cooler Pump Power",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Cooler Pump Heat loss",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Stack Air Cooler Fan Coefficient f0",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Air Cooler Fan Coefficient f1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Stack Air Cooler Fan Coefficient f2",0,"","","","",""))


        self.addReference("FCStackCoolerNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD(" Generator:FuelCell:StackCooler")





class Generator_MicroCHP(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Performance Parameters Name","",("Enter the name of a Generator:MicroCHP:NonNormalizedParameters object.","",)))
        self.InsertField(FieldText(self,"Zone Name","",""))
        self.InsertField(FieldText(self,"Cooling Water Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Cooling Water Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Air Outlet Node Name","",""))
        self.InsertField(FieldText(self,"Generator Fuel Supply Name","",("Enter the name of a Generator:FuelSupply object.","",)))
        self.InsertField(FieldText(self,"Availability Schedule Name","",""))


        self.addReference("MicroCHPNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:MicroCHP")





class Generator_MicroCHP_NonNormalizedParameters(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Maximum Electric Power",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Electric Power",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Cooling Water Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Cooling Water Temperature",0,"","","","",""))
        self.InsertField(FieldText(self,"Electrical Efficiency Curve Name","",("TriQuadratic","",)))
        self.InsertField(FieldText(self,"Thermal Efficiency Curve Name","",("TriQuadratic","",)))
        self.InsertField(FieldChoice(self,"Cooling Water Flow Rate Mode","","",["PlantControl","InternalControl",]))
        self.InsertField(FieldText(self,"Cooling Water Flow Rate Curve Name","",""))
        self.InsertField(FieldText(self,"Air Flow Rate Curve Name","",""))
        self.InsertField(FieldReal(self,"Maximum Net Electrical Power Rate of Change",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Fuel Flow Rate of Change",0,"","","","",""))
        self.InsertField(FieldReal(self,"Heat Exchanger U-Factor Times Area Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Skin Loss U-Factor Times Area Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Skin Loss Radiative Fraction",0,"","","","",""))
        self.InsertField(FieldReal(self,"Aggregated Thermal Mass of Energy Conversion Portion of Generator",0,"","","","",""))
        self.InsertField(FieldReal(self,"Aggregated Thermal Mass of Heat Recovery Portion of Generator",0,"","","","",""))
        self.InsertField(FieldReal(self,"Standby Power",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Warm Up Mode","",("Stirling engines use Nominal Engine Temperature","Internal combustion engines use Time Delay","",),["NominalEngineTemperature","TimeDelay",]))
        self.InsertField(FieldReal(self,"Warm Up Fuel Flow Rate Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Engine Operating Temperature",0,"","","","",""))
        self.InsertField(FieldReal(self,"Warm Up Power Coefficient",0,"","","","",""))
        self.InsertField(FieldReal(self,"Warm Up Fuel Flow Rate Limit Ratio",0,"","","","",""))
        self.InsertField(FieldReal(self,"Warm Up Delay Time",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cool Down Power",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cool Down Delay Time",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Restart Mode","","",["MandatoryCoolDown","OptionalCoolDown",]))


        self.addReference("MicroCHPParametersNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:MicroCHP:NonNormalizedParameters")





class Generator_FuelSupply(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Temperature Modeling Mode","","",["TemperatureFromAirNode","Scheduled",]))
        self.InsertField(FieldText(self,"Fuel Temperature Reference Node Name","",""))
        self.InsertField(FieldText(self,"Fuel Temperature Schedule Name","",""))
        self.InsertField(FieldObjectlist(self,"Compressor Power Function of Fuel Rate Curve Name","","","QubicCurves"))
        self.InsertField(FieldReal(self,"Compressor Heat Loss Factor",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Fuel Type","","",["GaseousConstituents","LiquidGeneric",]))
        self.InsertField(FieldReal(self,"Liquid Generic Fuel Lower Heating Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Generic Fuel Higher Heating Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Generic Fuel Molecular Weight",0,"","","","",""))
        self.InsertField(FieldReal(self,"Liquid Generic Fuel CO2 Emission Factor",0,"","","","",""))
        self.InsertField(FieldReal(self,"Number of Constituents in Gaseous Constituent Fuel Supply",0,"",0.0,12.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 1 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 1 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 2 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 2 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 3 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 3 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 4 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 4 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 5 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 5 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 6 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 6 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 7 Name","","",["Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 7 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 8 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 8 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 9 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 9 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 10 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 10 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 11 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 11 Molar Fraction",0,"",0.0,1.0,"",""))
        self.InsertField(FieldChoice(self,"Constituent 12 Name","","",["CarbonDioxide","Nitrogen","Oxygen","Water","Argon","Hydrogen","Methane","Ethane","Propane","Butane","Pentane","Hexane","Methanol","Ethanol",]))
        self.InsertField(FieldReal(self,"Constituent 12 Molar Fraction",0,"",0.0,1.0,"",""))


        self.insertMemo(("Used only with Generator:FuelCell and Generator:MicroCHP",))
        self.addReference("GenFuelSupNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("Generator:FuelSupply")





class ElectricLoadCenter_Generators(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Generator 1 Name","","","GeneratorNames"))
        self.InsertField(FieldChoice(self,"Generator 1 Object Type","","",["Generator:InternalCombustionEngine","Generator:CombustionTurbine","Generator:Photovoltaic","Generator:FuelCell","Generator:MicroCHP","Generator:MicroTurbine",]))
        self.InsertField(FieldReal(self,"Generator 1 Rated Electric Power Output",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Generator 1 Availability Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Generator 1 Rated Thermal to Electrical Power Ratio",0,"","","","",""))


        self.addReference("GeneratorLists")
        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(5)
        self.setClassnameIDD("ElectricLoadCenter:Generators")





class ElectricLoadCenter_Inverter_Simple(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Availability Schedule Name","",""))
        self.InsertField(FieldText(self,"Zone Name","",("enter name of zone to receive inverter losses as heat","if blank then inverter is assumed to be outdoors","",)))
        self.InsertField(FieldReal(self,"Radiative Fraction",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Inverter Efficiency",0,"",0,1.0,"",""))


        self.addReference("InverterList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("ElectricLoadCenter:Inverter:Simple")





class ElectricLoadCenter_Inverter_FunctionOfPower(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Availability Schedule Name","",""))
        self.InsertField(FieldText(self,"Zone Name","",("Enter name of zone to receive inverter losses as heat","if blank then inverter is assumed to be outdoors","",)))
        self.InsertField(FieldReal(self,"Radiative Fraction",0,"","","","",""))
        self.InsertField(FieldText(self,"Efficiency Function of Power Curve Name","",("curve describes efficiency as a function of power","curve is normalized relative to rated power in next field","",)))
        self.InsertField(FieldReal(self,"Rated Maximum Continuous Input Power",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Efficiency",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Efficiency",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Minimum Power Output",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Power Output",0,"","","","",""))
        self.InsertField(FieldReal(self,"Ancillary Power Consumed In Standby",0,"","","","",""))


        self.addReference("InverterList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("ElectricLoadCenter:Inverter:FunctionOfPower")





class ElectricLoadCenter_Inverter_LookUpTable(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Availability Schedule Name","",""))
        self.InsertField(FieldText(self,"Zone Name","",("Enter name of zone to receive inverter losses as heat","if blank then inverter is assumed to be outdoors","",)))
        self.InsertField(FieldReal(self,"Radiative Fraction",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Rated Maximum Continuous Output Power",0,"","","","",""))
        self.InsertField(FieldReal(self,"Night Tare Loss Power",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Voltage Input",0,"","","","",""))
        self.InsertField(FieldReal(self,"Efficiency at 10% Power and Nominal Voltage",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Efficiency at 20% Power and Nominal Voltage",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Efficiency at 30% Power and Nominal Voltage",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Efficiency at 50% Power and Nominal Voltage",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Efficiency at 75% Power and Nominal Voltage",0,"",0,1.0,"",""))
        self.InsertField(FieldReal(self,"Efficiency at 100% Power and Nominal Voltage",0,"",0,1.0,"",""))


        self.insertMemo(("  California Energy Commission tests and publishs data on inverters","  This inverter model interpolates using CEC test data","  Input data are at http://www.gosolarcalifornia.org/equipment/inverter_tests/summaries",))
        self.addReference("InverterList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("ElectricLoadCenter:Inverter:LookUpTable")





class ElectricLoadCenter_Storage_Simple(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Availability Schedule Name","",""))
        self.InsertField(FieldText(self,"Zone Name","",("Enter name of zone to receive storage losses as heat","if blank then storage is assumed to be outdoors","",)))
        self.InsertField(FieldReal(self,"Radiative Fraction for Zone Heat Gains",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Nominal Energetic Efficiency for Charging",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Nominal Discharging Energetic Efficiency",0,"",0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Maximum Storage Capacity",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Power for Discharging",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Power for Charging",0,"","","","",""))
        self.InsertField(FieldReal(self,"Initial State of Charge",0,"","","","",""))


        self.addReference("ElecStorageList")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Electric Load Center-Generator Specifications") 
        self.setExtensible(-1)
        self.setClassnameIDD("ElectricLoadCenter:Storage:Simple")





class ElectricLoadCenter_Distribution(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Generator List Name","","","GeneratorLists"))
        self.InsertField(FieldChoice(self,"Generator Operation Scheme Type","","",["Baseload","DemandLimit","TrackElectrical","TrackSchedule","TrackMeter","FollowThermal","FollowThermalLimitElectrical",]))
        self.InsertField(FieldReal(self,"Demand Limit Scheme Purchased Electric Demand Limit",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Track Schedule Name Scheme Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldText(self,"Track Meter Scheme Meter Name","",""))
        self.InsertField(FieldChoice(self,"Electrical Buss Type","AlternatingCurrent","",["AlternatingCurrent","AlternatingCurrentWithStorage","DirectCurrentWithInverter","DirectCurrentWithInverterDCStorage","DirectCurrentWithInverterACStorage",]))
        self.InsertField(FieldObjectlist(self,"Inverter Object Name","","","InverterList"))
        self.InsertField(FieldObjectlist(self,"Electrical Storage Object Name","","","ElecStorageList"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Systems") 
        self.setExtensible(-1)
        self.setClassnameIDD("ElectricLoadCenter:Distribution")





class WaterUse_Equipment(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"End-Use Subcategory","General",""))
        self.InsertField(FieldReal(self,"Peak Flow Rate",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Flow Rate Fraction Schedule Name","",("Defaults to 1.0 at all times","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Target Temperature Schedule Name","",("Defaults to hot water supply temperature","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Hot Water Supply Temperature Schedule Name","",("Defaults to cold water supply temperature","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cold Water Supply Temperature Schedule Name","",("Defaults to water temperatures calculated by Site:WaterMainsTemperature object","",),"ScheduleNames"))
        self.InsertField(FieldText(self,"Zone Name","",""))
        self.InsertField(FieldObjectlist(self,"Sensible Fraction Schedule Name","",("Defaults to 0.0 at all times","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Latent Fraction Schedule Name","",("Defaults to 0.0 at all times","",),"ScheduleNames"))


        self.addReference("WaterUseEquipmentNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Systems") 
        self.setExtensible(-1)
        self.setClassnameIDD("WaterUse:Equipment")





class WaterUse_Connections(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Inlet Node Name","",""))
        self.InsertField(FieldText(self,"Outlet Node Name","",""))
        self.InsertField(FieldObjectlist(self,"Supply Water Storage Tank Name","",("If blank, or tank is empty, defaults to fresh water from the mains","",),"WaterStorageTankNames"))
        self.InsertField(FieldObjectlist(self,"Reclamation Water Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldObjectlist(self,"Hot Water Supply Temperature Schedule Name","",("Defaults to cold water supply temperature","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Cold Water Supply Temperature Schedule Name","",("Defaults to water temperatures calculated by Site:WaterMainsTemperature object","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Drain Water Heat Exchanger Type","None","",["None","Ideal","CounterFlow","CrossFlow",]))
        self.InsertField(FieldChoice(self,"Drain Water Heat Exchanger Destination","Plant","",["Plant","Equipment","PlantAndEquipment",]))
        self.InsertField(FieldReal(self,"Drain Water Heat Exchanger U-Factor Times Area",0,"",0.0,"","",""))
        self.InsertField(FieldObjectlist(self,"Water Use Equipment 1 Name","",("Enter the name of a WaterUse:Equipment object.","",),"WaterUseEquipmentNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Systems") 
        self.setExtensible(1)
        self.setClassnameIDD("WaterUse:Connections")





class WaterUse_Storage(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Water Quality Subcategory","",""))
        self.InsertField(FieldReal(self,"Maximum Capacity",0,("Defaults to unlimited capacity.","Units: m3",),"","","",""))
        self.InsertField(FieldReal(self,"Initial Volume",0,"","","","",""))
        self.InsertField(FieldReal(self,"Design In Flow Rate",0,("Defaults to unlimited flow.","Units: m3/s",),"","","",""))
        self.InsertField(FieldReal(self,"Design Out Flow Rate",0,("Defaults to unlimited flow.","Units: m3/s",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Overflow Destination","",("If blank, overflow is discarded","",),"WaterStorageTankNames"))
        self.InsertField(FieldChoice(self,"Type of Supply Controlled by Float Valve","","",["None","Mains","GroundwaterWell","OtherTank",]))
        self.InsertField(FieldReal(self,"Float Valve On Capacity",0,("Lower range of target storage level e.g. float valve kicks on","Units: m3",),"","","",""))
        self.InsertField(FieldReal(self,"Float Valve Off Capacity",0,("Upper range of target storage level e.g. float valve kicks off","Units: m3",),"","","",""))
        self.InsertField(FieldReal(self,"Backup Mains Capacity",0,("Lower range of secondary target storage level","used to keep tanks at a minimum level using","mains water if well can't keep up","Units: m3",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Other Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldChoice(self,"Water Thermal Mode","","",["ScheduledTemperature","ThermalModel",]))
        self.InsertField(FieldObjectlist(self,"Water Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldChoice(self,"Ambient Temperature Indicator","","",["Schedule","Zone","Outdoors",]))
        self.InsertField(FieldObjectlist(self,"Ambient Temperature Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Zone Name","","","ZoneNames"))
        self.InsertField(FieldReal(self,"Tank Surface Area",0,"","","","",""))
        self.InsertField(FieldReal(self,"Tank U Value",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Tank Outside Surface Material Name","","","MaterialName"))


        self.addReference("WaterStorageTankNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Systems") 
        self.setExtensible(-1)
        self.setClassnameIDD("WaterUse:Storage")





class WaterUse_Well(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldReal(self,"Pump Depth",0,"","","","",""))
        self.InsertField(FieldReal(self,"Pump Rated Flow Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Pump Rated Head",0,"","","","",""))
        self.InsertField(FieldReal(self,"Pump Rated Power Consumption",0,"","","","",""))
        self.InsertField(FieldReal(self,"Pump Efficiency",0,"","","","",""))
        self.InsertField(FieldReal(self,"Well Recovery Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Nominal Well Storage Volume",0,"","","","",""))
        self.InsertField(FieldChoice(self,"Water Table Depth Mode","","",["Constant","Scheduled",]))
        self.InsertField(FieldReal(self,"Water Table Depth",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Water Table Depth Schedule Name","","","ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Water Systems") 
        self.setExtensible(-1)
        self.setClassnameIDD("WaterUse:Well")





class WaterUse_RainCollector(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldObjectlist(self,"Storage Tank Name","","","WaterStorageTankNames"))
        self.InsertField(FieldChoice(self,"Loss Factor Mode","","",["Constant","Scheduled",]))
        self.InsertField(FieldReal(self,"Collection Loss Factor",0,("this is the portion of rain","that is lost in the process of collecting it","the rain collected is one minus this factor","",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Collection Loss Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Maximum Collection Rate",0,("Defaults to unlimited flow.","Units: m3/s",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Collection Surface 1 Name","","","AllShadingAndHTSurfNames"))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Performance Curves") 
        self.setExtensible(1)
        self.setClassnameIDD("WaterUse:RainCollector")





class Curve_Linear(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("curve = C1 + C2*x","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("LinearCurves")
        self.addReference("AllCurves")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Performance Curves") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:Linear")





class Curve_Quadratic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("curve = C1 + C2*x + C3*x**2","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient3 x**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("QuadraticCurves")
        self.addReference("AllCurves")
        self.addReference("QuadraticCubicCurves")
        self.addReference("BiquadraticQuadraticCubicCurves")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Performance Curves") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:Quadratic")





class Curve_Cubic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("curve = C1 + C2*x + C3*x**2 + C4*x**3","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient3 x**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient4 x**3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("CubicCurves")
        self.addReference("AllCurves")
        self.addReference("QuadraticCubicCurves")
        self.addReference("BiquadraticCubicCurves")
        self.addReference("BiquadraticQuadraticCubicCurves")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Performance Curves") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:Cubic")





class Curve_Exponent(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("curve = C1 + C2*x**C3","The independent variable x is raised to the C3 power, multiplied by C2, and C1 is added to the result.","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient3 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,("Specify the minimum value of the independent variable x allowed","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,("Specify the maximum value of the independent variable x allowed","",),"","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("ExponentCurves")
        self.addReference("AllCurves")
        self.setRequired(False)
        self.setMinfields(6)
        self.setGroup("Performance Curves") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:Exponent")





class Curve_Biquadratic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("curve = C1 + C2*x + C3*x**2 + C4*y + C5*y**2 + C6*x*y","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient3 x**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient4 y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient5 y**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient6 x*y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("BiquadraticCurves")
        self.addReference("AllCurves")
        self.addReference("BiquadraticCubicCurves")
        self.addReference("BiquadraticQuadraticCubicCurves")
        self.addReference("BicubicBiquadraticCurves")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Performance Curves") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:Biquadratic")





class Curve_Bicubic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("curve = C1 + C2*x + C3*x**2 + C4*y + C5*y**2 + C6*x*y + C7*x**3 + C8*y**3 + C9*x**2*y","+ C10*x*y**2","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient3 x**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient4 y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient5 y**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient6 x*y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient7 x**3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient8 y**3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient9 x**2*y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient10 x*y**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("AllCurves")
        self.addReference("BicubicCurves")
        self.addReference("BicubicBiquadraticCurves")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Performance Curves") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:Bicubic")





class Curve_QuadraticLinear(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("curve = (C1 + C2*x + C3*x**2) + (C4 + C5*x + C6*x**2)*y","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient3 x**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient4 y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient5 x*y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient6 x**2*y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("QuadraticLinearCurves")
        self.addReference("AllCurves")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Performance Curves") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:QuadraticLinear")





class Curve_Triquadratic(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("2nd order polynomial in three variable polynomial (all terms)","curve = a0 + a1*x**2 + a2*x + a3*y**2 + a4*y","        + a5*z**2 + a6*z + a7*x**2*y**2 + a8*x*y","        + a9*x*y**2 + a10*x**2*y + a11*x**2*z**2","        + a12*x*z + a13*x*z**2 + a14*x**2*z + a15*y**2*z**2","        + a16*y*z + a17*y*z**2 + a18*y**2*z + a19*x**2*y**2*z**2","        + a20*x**2*y**2*z + a21*x**2*y*z**2 + a22*x*y**2*z**2","        + a23*x**2*y*z + a24*x*y**2*z + a25*x*y*z**2 +a26*x*y*z","",)))
        self.InsertField(FieldReal(self,"Coefficient1 Constant",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient2 x**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient3 x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient4 y**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient5 y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient6 z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient7 z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient8 x**2*y**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient9 x*y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient10 x*y**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient11 x**2*y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient12 x**2*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient13 x*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient14 x*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient15 x**2*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient16 y**2*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient17 y*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient18 y*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient19 y**2*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient20 x**2*y**2*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient21 x**2*y**2*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient22 x**2*y*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient23 x*y**2*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient24 x**2*y*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient25 x*y**2*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient26 x*y*z**2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Coefficient27 x*y*z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of x",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of y",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Value of z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Maximum Value of z",0,"","","","",""))
        self.InsertField(FieldReal(self,"Minimum Curve Output",0,("Specify the minimum value calculated by this curve object","",),"","","",""))
        self.InsertField(FieldReal(self,"Maximum Curve Output",0,("Specify the maximum value calculated by this curve object","",),"","","",""))


        self.addReference("TriQuadraticCurves")
        self.addReference("AllCurves")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fluid Properties") 
        self.setExtensible(-1)
        self.setClassnameIDD("Curve:Triquadratic")





class FluidProperties_Names(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Fluid 1 Name","",""))
        self.InsertField(FieldChoice(self,"Fluid 1 Type","","",["Refrigerant","Glycol",]))


        self.insertMemo(("list of potential fluid names/types in the input file, maximum of ten",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fluid Properties") 
        self.setExtensible(2)
        self.setClassnameIDD("FluidProperties:Names")





class FluidProperties_GlycolConcentrations(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Fluid 1 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 1 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 1 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 2 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 2 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 2 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 3 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 3 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 3 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 4 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 4 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 4 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 5 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 5 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 5 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 6 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 6 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 6 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 7 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 7 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 7 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 8 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 8 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 8 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 9 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 9 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 9 Concentration",0,"",0.0,1.0,"",""))
        self.InsertField(FieldText(self,"Fluid 10 Name","",""))
        self.InsertField(FieldChoice(self,"Glycol 10 Name","","",["EthyleneGlycol","PropyleneGlycol",]))
        self.InsertField(FieldReal(self,"Glycol 10 Concentration",0,"",0.0,1.0,"",""))


        self.insertMemo(("list of glycols and what concentration they are, maximum of ten","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)","or UserDefined Fluid (must show up as a glycol in FluidProperties:Names list)",))
        self.addReference("GlycolConcentrations")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fluid Properties") 
        self.setExtensible(-1)
        self.setClassnameIDD("FluidProperties:GlycolConcentrations")





class FluidProperties_Temperatures(ObjectFluidProperty):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldReal(self,"Temperature 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 27",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 28",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 29",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 30",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 31",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 32",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 33",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 34",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 35",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 36",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 37",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 38",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 39",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 40",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 41",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 42",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 43",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 44",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 45",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 46",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 47",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 48",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 49",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 50",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 51",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 52",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 53",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 54",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 55",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 56",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 57",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 58",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 59",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 60",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 61",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 62",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 63",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 64",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 65",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 66",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 67",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 68",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 69",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 70",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 71",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 72",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 73",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 74",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 75",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 76",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 77",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 78",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 79",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 80",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 81",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 82",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 83",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 84",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 85",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 86",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 87",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 88",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 89",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 90",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 91",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 92",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 93",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 94",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 95",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 96",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 97",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 98",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 99",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 100",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 101",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 102",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 103",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 104",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 105",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 106",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 107",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 108",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 109",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 110",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 111",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 112",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 113",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 114",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 115",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 116",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 117",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 118",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 119",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 120",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 121",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 122",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 123",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 124",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 125",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 126",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 127",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 128",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 129",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 130",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 131",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 132",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 133",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 134",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 135",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 136",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 137",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 138",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 139",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 140",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 141",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 142",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 143",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 144",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 145",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 146",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 147",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 148",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 149",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 150",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 151",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 152",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 153",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 154",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 155",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 156",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 157",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 158",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 159",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 160",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 161",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 162",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 163",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 164",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 165",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 166",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 167",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 168",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 169",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 170",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 171",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 172",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 173",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 174",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 175",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 176",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 177",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 178",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 179",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 180",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 181",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 182",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 183",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 184",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 185",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 186",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 187",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 188",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 189",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 190",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 191",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 192",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 193",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 194",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 195",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 196",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 197",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 198",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 199",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 200",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 201",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 202",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 203",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 204",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 205",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 206",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 207",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 208",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 209",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 210",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 211",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 212",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 213",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 214",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 215",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 216",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 217",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 218",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 219",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 220",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 221",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 222",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 223",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 224",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 225",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 226",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 227",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 228",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 229",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 230",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 231",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 232",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 233",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 234",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 235",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 236",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 237",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 238",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 239",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 240",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 241",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 242",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 243",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 244",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 245",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 246",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 247",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 248",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 249",0,"","","","",""))
        self.InsertField(FieldReal(self,"Temperature 250",0,"","","","",""))


        self.insertMemo(("property values for fluid properties","list of up to 250 temperatures, note that number of property values must match the number of properties","in other words, there must be a one-to-one correspondence between the property values in this list and","the actual properties list in other syntax","degrees C (for all temperature inputs)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fluid Properties") 
        self.setExtensible(-1)
        self.setClassnameIDD("FluidProperties:Temperatures")





class FluidProperties_Saturated(ObjectFluidProperty):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fluid Property Type","",("Enthalpy Units are J/kg","Density Units are kg/m3","SpecificHeat Units are J/kg-K","Pressure Units are Pa","",),["Enthalpy     ! Units are J/kg","Density      ! Units are kg/m3","SpecificHeat ! Units are J/kg-K","Pressure     ! Units are Pa",]))
        self.InsertField(FieldChoice(self,"Fluid Phase","",("Fluid=saturated fluid","FluidGas=saturated vapor","",),["Fluid        ! saturated fluid","FluidGas     ! saturated vapor",]))
        self.InsertField(FieldText(self,"Temperature Values Name","",("Enter the name of a FluidProperties:Temperatures object.","",)))
        self.InsertField(FieldReal(self,"Property Value 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 27",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 28",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 29",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 30",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 31",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 32",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 33",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 34",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 35",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 36",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 37",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 38",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 39",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 40",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 41",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 42",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 43",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 44",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 45",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 46",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 47",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 48",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 49",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 50",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 51",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 52",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 53",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 54",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 55",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 56",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 57",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 58",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 59",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 60",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 61",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 62",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 63",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 64",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 65",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 66",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 67",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 68",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 69",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 70",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 71",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 72",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 73",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 74",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 75",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 76",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 77",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 78",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 79",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 80",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 81",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 82",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 83",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 84",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 85",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 86",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 87",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 88",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 89",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 90",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 91",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 92",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 93",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 94",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 95",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 96",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 97",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 98",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 99",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 100",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 101",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 102",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 103",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 104",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 105",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 106",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 107",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 108",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 109",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 110",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 111",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 112",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 113",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 114",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 115",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 116",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 117",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 118",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 119",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 120",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 121",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 122",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 123",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 124",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 125",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 126",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 127",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 128",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 129",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 130",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 131",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 132",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 133",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 134",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 135",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 136",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 137",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 138",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 139",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 140",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 141",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 142",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 143",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 144",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 145",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 146",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 147",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 148",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 149",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 150",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 151",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 152",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 153",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 154",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 155",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 156",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 157",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 158",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 159",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 160",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 161",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 162",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 163",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 164",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 165",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 166",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 167",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 168",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 169",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 170",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 171",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 172",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 173",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 174",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 175",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 176",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 177",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 178",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 179",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 180",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 181",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 182",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 183",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 184",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 185",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 186",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 187",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 188",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 189",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 190",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 191",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 192",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 193",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 194",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 195",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 196",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 197",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 198",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 199",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 200",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 201",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 202",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 203",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 204",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 205",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 206",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 207",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 208",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 209",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 210",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 211",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 212",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 213",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 214",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 215",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 216",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 217",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 218",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 219",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 220",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 221",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 222",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 223",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 224",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 225",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 226",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 227",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 228",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 229",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 230",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 231",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 232",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 233",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 234",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 235",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 236",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 237",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 238",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 239",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 240",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 241",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 242",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 243",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 244",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 245",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 246",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 247",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 248",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 249",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 250",0,"","","","",""))


        self.insertMemo(("fluid properties for the saturated region",))
        self.addReference("FluidNames")
        self.addReference("FluidPropertyTemperatures")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fluid Properties") 
        self.setExtensible(-1)
        self.setClassnameIDD("FluidProperties:Saturated")





class FluidProperties_Superheated(ObjectFluidProperty):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Fluid Name","",""))
        self.InsertField(FieldChoice(self,"Fluid Property Type","",("Enthalpy Units are J/kg","Density Units are kg/m3","",),["Enthalpy     ! Units are J/kg","Density      ! Units are kg/m3",]))
        self.InsertField(FieldText(self,"Temperature Values Name","",("Enter the name of a FluidProperties:Temperatures object.","",)))
        self.InsertField(FieldReal(self,"Pressure",0,("pressure for this list of properties","Units: Pa",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Property Value 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 27",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 28",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 29",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 30",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 31",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 32",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 33",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 34",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 35",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 36",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 37",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 38",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 39",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 40",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 41",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 42",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 43",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 44",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 45",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 46",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 47",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 48",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 49",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 50",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 51",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 52",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 53",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 54",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 55",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 56",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 57",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 58",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 59",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 60",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 61",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 62",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 63",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 64",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 65",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 66",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 67",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 68",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 69",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 70",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 71",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 72",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 73",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 74",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 75",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 76",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 77",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 78",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 79",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 80",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 81",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 82",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 83",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 84",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 85",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 86",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 87",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 88",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 89",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 90",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 91",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 92",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 93",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 94",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 95",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 96",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 97",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 98",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 99",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 100",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 101",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 102",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 103",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 104",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 105",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 106",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 107",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 108",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 109",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 110",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 111",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 112",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 113",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 114",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 115",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 116",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 117",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 118",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 119",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 120",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 121",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 122",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 123",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 124",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 125",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 126",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 127",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 128",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 129",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 130",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 131",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 132",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 133",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 134",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 135",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 136",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 137",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 138",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 139",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 140",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 141",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 142",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 143",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 144",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 145",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 146",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 147",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 148",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 149",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 150",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 151",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 152",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 153",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 154",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 155",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 156",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 157",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 158",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 159",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 160",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 161",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 162",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 163",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 164",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 165",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 166",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 167",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 168",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 169",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 170",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 171",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 172",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 173",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 174",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 175",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 176",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 177",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 178",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 179",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 180",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 181",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 182",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 183",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 184",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 185",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 186",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 187",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 188",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 189",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 190",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 191",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 192",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 193",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 194",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 195",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 196",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 197",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 198",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 199",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 200",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 201",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 202",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 203",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 204",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 205",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 206",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 207",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 208",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 209",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 210",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 211",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 212",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 213",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 214",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 215",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 216",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 217",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 218",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 219",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 220",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 221",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 222",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 223",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 224",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 225",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 226",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 227",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 228",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 229",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 230",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 231",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 232",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 233",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 234",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 235",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 236",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 237",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 238",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 239",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 240",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 241",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 242",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 243",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 244",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 245",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 246",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 247",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 248",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 249",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 250",0,"","","","",""))


        self.insertMemo(("fluid properties for the superheated region",))
        self.addReference("FluidNames")
        self.addReference("FluidPropertyTemperatures")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Fluid Properties") 
        self.setExtensible(-1)
        self.setClassnameIDD("FluidProperties:Superheated")





class FluidProperties_Concentration(ObjectFluidProperty):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Fluid Name","",("should not be any of the defaults (Water, EthyleneGlycol, or PropyleneGlycol)","",)))
        self.InsertField(FieldChoice(self,"Fluid Property Type","",("Density Units are kg/m3","SpecificHeat Units are J/kg-K","Conductivity Units are W/m-K","Viscosity Units are N-s/m2","",),["Density      ! Units are kg/m3","SpecificHeat ! Units are J/kg-K","Conductivity ! Units are W/m-K","Viscosity    ! Units are N-s/m2",]))
        self.InsertField(FieldText(self,"Temperature Values Name","",("Enter the name of a FluidProperties:Temperatures object.","",)))
        self.InsertField(FieldReal(self,"Concentration",0,("Glycol concentration for this list of properties entered as a fraction","Units: dimensionless",),0.0,1.0,"",""))
        self.InsertField(FieldReal(self,"Property Value 1",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 2",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 3",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 5",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 6",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 7",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 8",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 9",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 10",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 11",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 12",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 13",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 14",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 15",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 16",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 17",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 18",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 19",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 20",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 21",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 22",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 23",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 24",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 25",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 26",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 27",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 28",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 29",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 30",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 31",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 32",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 33",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 34",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 35",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 36",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 37",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 38",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 39",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 40",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 41",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 42",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 43",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 44",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 45",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 46",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 47",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 48",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 49",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 50",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 51",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 52",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 53",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 54",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 55",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 56",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 57",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 58",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 59",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 60",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 61",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 62",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 63",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 64",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 65",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 66",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 67",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 68",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 69",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 70",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 71",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 72",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 73",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 74",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 75",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 76",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 77",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 78",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 79",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 80",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 81",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 82",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 83",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 84",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 85",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 86",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 87",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 88",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 89",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 90",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 91",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 92",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 93",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 94",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 95",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 96",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 97",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 98",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 99",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 100",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 101",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 102",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 103",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 104",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 105",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 106",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 107",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 108",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 109",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 110",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 111",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 112",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 113",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 114",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 115",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 116",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 117",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 118",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 119",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 120",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 121",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 122",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 123",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 124",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 125",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 126",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 127",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 128",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 129",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 130",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 131",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 132",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 133",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 134",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 135",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 136",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 137",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 138",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 139",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 140",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 141",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 142",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 143",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 144",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 145",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 146",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 147",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 148",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 149",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 150",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 151",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 152",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 153",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 154",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 155",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 156",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 157",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 158",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 159",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 160",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 161",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 162",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 163",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 164",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 165",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 166",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 167",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 168",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 169",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 170",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 171",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 172",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 173",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 174",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 175",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 176",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 177",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 178",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 179",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 180",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 181",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 182",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 183",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 184",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 185",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 186",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 187",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 188",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 189",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 190",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 191",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 192",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 193",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 194",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 195",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 196",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 197",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 198",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 199",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 200",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 201",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 202",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 203",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 204",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 205",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 206",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 207",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 208",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 209",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 210",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 211",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 212",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 213",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 214",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 215",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 216",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 217",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 218",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 219",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 220",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 221",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 222",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 223",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 224",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 225",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 226",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 227",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 228",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 229",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 230",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 231",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 232",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 233",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 234",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 235",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 236",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 237",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 238",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 239",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 240",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 241",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 242",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 243",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 244",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 245",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 246",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 247",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 248",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 249",0,"","","","",""))
        self.InsertField(FieldReal(self,"Property Value 250",0,"","","","",""))


        self.insertMemo(("fluid properties for water/other fluid mixtures",))
        self.addReference("FluidNames")
        self.addReference("FluidPropertyTemperatures")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("FluidProperties:Concentration")





class CurrencyType(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Monetary Unit","",("The commonly used three letter currency code for the units of money for the country or region.","Based on ISO 4217 currency codes.  Common currency codes are USD for $ and EUR for Euros.","",),["USD","AFN","ALL","ANG","ARS","AUD","AWG","AZN","BAM","BBD","BGN","BMD","BND","BOB","BRL","BSD","BWP","BYR","BZD","CAD","CHF","CLP","CNY","COP","CRC","CUP","CZK","DKK","DOP","EEK","EGP","EUR","FJD","GBP","GHC","GIP","GTQ","GYD","HKD","HNL","HRK","HUF","IDR","ILS","IMP","INR","IRR","ISK","JEP","JMD","JPY","KGS","KHR","KPW","KRW","KYD","KZT","LAK","LBP","LKR","LRD","LTL","LVL","MKD","MNT","MUR","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","SAR","SBD","SCR","SEK","SGD","SHP","SOS","SRD","SVC","SYP","THB","TRL","TRY","TTD","TVD","TWD","UAH","UYU","UZS","VEF","VND","XCD","YER","ZAR","ZWD",]))


        self.insertMemo(("If CurrencyType is not specified, it will default to USD and produce $ in the reports.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("CurrencyType")





class ComponentCost_Adjustments(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Miscellaneous Cost per Conditioned Area",0,("based on conditioned floor area","for cost not accounted for in current line item cost model","Units: $/m2",),"","","",""))
        self.InsertField(FieldReal(self,"Design and Engineering Fees",0,"","","","",""))
        self.InsertField(FieldReal(self,"Contractor Fee",0,"","","","",""))
        self.InsertField(FieldReal(self,"Contingency",0,"","","","",""))
        self.InsertField(FieldReal(self,"Permits, Bonding and Insurance",0,"","","","",""))
        self.InsertField(FieldReal(self,"Commissioning Fee",0,"","","","",""))
        self.InsertField(FieldReal(self,"Regional Adjustment Factor",0,("for use with average data in line item and Misc cost models","Units: dimensionless",),"","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("ComponentCost:Adjustments")





class ComponentCost_Reference(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Reference Building Line Item Costs",0,("should be comparable to the components in current line item cost model","Units: $",),"","","",""))
        self.InsertField(FieldReal(self,"Reference Building Miscellaneous Cost per Conditioned Area",0,("based on conditioned floor area","for cost not accounted for in reference line item costs","Units: $/m2",),"","","",""))
        self.InsertField(FieldReal(self,"Reference Building Design and Engineering Fees",0,"","","","",""))
        self.InsertField(FieldReal(self,"Reference Building Contractor Fee",0,"","","","",""))
        self.InsertField(FieldReal(self,"Reference Building Contingency",0,"","","","",""))
        self.InsertField(FieldReal(self,"Reference Building Permits, Bonding and Insurance",0,"","","","",""))
        self.InsertField(FieldReal(self,"Reference Building Commissioning Fee",0,"","","","",""))
        self.InsertField(FieldReal(self,"Reference Building Regional Adjustment Factor",0,("for use with average data in line item and Misc cost models","Units: dimensionless",),"","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("ComponentCost:Reference")





class ComponentCost_LineItem(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Type","",""))
        self.InsertField(FieldChoice(self,"Line Item Type","",(" extend choice-keys as Cases are added to code","",),["General","Construction","Coil:DX","Coil:Cooling:DX:SingleSpeed","Coil:Heating:Gas","Chiller:Electric","Daylighting:Controls","Shading:Zone:Detailed","Lights","Generator:Photovoltaic",]))
        self.InsertField(FieldText(self,"Item Name","",("wildcard *** is acceptable for some components","",)))
        self.InsertField(FieldText(self,"Object End Use Key","",("not yet used","",)))
        self.InsertField(FieldReal(self,"Cost per Each",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cost per Area",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cost per Unit of Output Capacity",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cost per Unit of Output Capacity per COP",0,("The value is per change in COP.","Units: $/kW",),"","","",""))
        self.InsertField(FieldReal(self,"Cost per Volume",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cost per Volume Rate",0,"","","","",""))
        self.InsertField(FieldReal(self,"Cost per Energy per Temperature Difference",0,("as in for use with UA sizing of Coils","Units: $/(W/K)",),"","","",""))
        self.InsertField(FieldReal(self,"Quantity",0,("optional for use with Cost per Each and *General* object Type","Units: dimensionless",),"","","",""))
        self.InsertField(FieldReal(self,"Annual Operation, Maintenance and Repair Cost",0,("for future LCC","Units: $",),"","","",""))
        self.InsertField(FieldReal(self,"Recurring Minor Maintenance or Repair Cost",0,("for future LCC","Units: $",),"","","",""))
        self.InsertField(FieldInt(self,"Recurring Minor Maintenance or Repair Time Interval",0,("for future LCC","Units: years",),"","","",""))
        self.InsertField(FieldReal(self,"Recurring Major Maintenance or Repair Cost",0,("for future LCC","Units: $",),"","","",""))
        self.InsertField(FieldInt(self,"Recurring Major Maintenance or Repair Time Interval",0,("for future LCC","Units: years",),"","","",""))
        self.InsertField(FieldInt(self,"Expected Life",0,("for future LCC","Units: years",),"","","",""))
        self.InsertField(FieldReal(self,"Residual Value at Replacement",0,("for future LCC","Units: $",),"","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("ComponentCost:LineItem")





class UtilityCost_Tariff(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("The name of the tariff. Tariffs are sometimes called rates. The name is used in identifying","the output results and in associating all of the charges and other objects that make up a tariff.","",)))
        self.InsertField(FieldText(self,"Output Meter Name","",("The name of any standard meter or custom meter or but usually set to either Electricity:Facility or Gas:Facility","",)))
        self.InsertField(FieldChoice(self,"Conversion Factor Choice","",("A choice that allows several different predefined conversion factors to be used; otherwise user","defined conversion factors are used as defined in the next two fields.","",),["UserDefined","kWh","Therm","MMBtu","MJ","kBtu","MCF","CCF",]))
        self.InsertField(FieldReal(self,"Energy Conversion Factor",0,("Is a multiplier used to convert energy into the units specified by the utility in their tariff. If","left blank it defaults to 1 (no conversion). This field should will be used only if Conversion Factor","Choice is set to UserDefined.  Within EnergyPlus energy always has units of J (joules).  For","conversion from J to kWh use the value of 0.0000002778. This is also used for all objects that","reference the UtilityCost:Tariff.","",),"","","",""))
        self.InsertField(FieldReal(self,"Demand Conversion Factor",0,("Is a multiplier used to convert demand into the units specified by the utility in their tariff. If","left blank it defaults to 1 (no conversion).  This field should will be used only if Conversion","Factor Choice is set to UserDefined.  Within EnergyPlus demand always has units of J/s (joules/sec)","which equivalent to W (watts).  For conversion from W to kW use the value of 0.001. This is also used","for all objects that reference the UtilityCost:Tariff.","",),"","","",""))
        self.InsertField(FieldObjectlist(self,"Time of Use Period Schedule Name","",("The name of the schedule that defines the time-of-use periods that occur each day. The values for the","different variables are: 1 for Peak. 2 for Shoulder. 3 for OffPeak. 4 for MidPeak.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Season Schedule Name","",("The name of a schedule that defines the seasons.  The schedule values are: 1 for Winter. 2 for Spring.","3 for Summer. 4 for Autumn.","",),"ScheduleNames"))
        self.InsertField(FieldObjectlist(self,"Month Schedule Name","",("The name of the schedule that defines the billing periods of the year. Normally this entry is allowed","to default and a schedule will be internally used that has the breaks between billing periods occurring","at the same time as the breaks between months i.e. at midnight prior to the first day of the month.","If other billing periods are used such as two month cycles or a single bill for an entire season such","as some natural gas companies do in the summer then the month schedule may be used to redefine it.","Make sure that the month schedule and season schedule are consistent otherwise an error will be issued.","",),"ScheduleNames"))
        self.InsertField(FieldChoice(self,"Demand Window Length","",("The determination of demand can vary by utility. Some utilities use the peak instantaneous demand","measured but most use a fifteen minute average demand or a one hour average demand. Some gas utilities","measure demand as the use during the peak day or peak week.","",),["QuarterHour","HalfHour","FullHour","Day","Week",]))
        self.InsertField(FieldText(self,"Monthly Charge or Variable Name","",("The fixed monthly service charge that many utilities have.  The entry may be numeric and gets added to","the ServiceCharges variable or if a variable name is entered here its values for each month are used.","",)))
        self.InsertField(FieldText(self,"Minimum Monthly Charge or Variable Name","",("The minimum total charge for the tariff or if a variable name is entered here its","values for each month are used.","",)))
        self.InsertField(FieldText(self,"Real Time Pricing Charge Schedule Name","",("Used with real time pricing rates. The name of a schedule that contains the cost of","energy for that particular time period of the year. Real time rates can be modeled using a charge","schedule with the actual real time prices entered in the schedule.","",)))
        self.InsertField(FieldText(self,"Customer Baseline Load Schedule Name","",("Used with real time pricing rates. The name of a schedule that contains the baseline","energy use for the customer. Many real time rates apply the charges as a credit or debit only to the","difference between the baseline use and the actual use.","",)))
        self.InsertField(FieldText(self,"Group Name","",("The group name of the tariff such as distribution transmission supplier etc. If more than one tariff","with the same group name is present and qualifies only the lowest cost tariff is used. Usually the group","name field is left blank which results in all tariffs using the same meter variable being compared and","the lowest cost one being selected.","",)))
        self.InsertField(FieldChoice(self,"Buy Or Sell","",("Sets whether the tariff is used for buying selling or both to the utility.  This","should be allowed to default to buyFromUtility unless a power generation system is included in the","building that may generate more power than the building needs during the year","",),["  BuyFromUtility","  SellToUtility","  NetMetering",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("UtilityCost:Tariff")





class UtilityCost_Qualify(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("Displayed in the report if the tariff does not qualify","",)))
        self.InsertField(FieldText(self,"Tariff Name","",("The name of the UtilityCost:Tariff that is associated with this UtilityCost:Qualify.","",)))
        self.InsertField(FieldText(self,"Variable Name","",("The name of the variable used. For energy and demand the automatically created variables totalEnergy","and totalDemand should be used respectively.","",)))
        self.InsertField(FieldChoice(self,"Qualify Type","","",["Minimum","Maximum",]))
        self.InsertField(FieldText(self,"Threshold Value or Variable Name","",("The minimum or maximum value for the qualify. If the variable has values that are less than this value","when the qualify type is minimum then the tariff may be disqualified.  If the variable has values that","are greater than this value when the qualify type is maximum then the tariff may be disqualified.","",)))
        self.InsertField(FieldChoice(self,"Season","",("If the UtilityCost:Qualify only applies to a season enter the season name. If this field is left blank","it defaults to Annual.","",),["Annual","Summer","Winter","Spring","Fall",]))
        self.InsertField(FieldChoice(self,"Threshold Test","",("Uses the number in Number of Months in one of two different ways depending on the Threshold  Test. If","the Threshold Test is set to Count then the qualification is based on the count of the total number","of months per year.  If the Threshold Test is set to consecutive then the qualification is based on","a consecutive number of months.","",),["Count","Consecutive",]))
        self.InsertField(FieldReal(self,"Number of Months",0,("A number from 1 to 12.  If no value entered 12 is assumed when the qualify type is minimum and 1 when","the qualify type is maximum.  This is the number of months that the threshold test applies to determine","if the rate qualifies or not.  If the season is less than 12 months (if it is not annual) then the","value is automatically reduced to the number of months of the seaon.","",),1,12,"",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("UtilityCost:Qualify")





class UtilityCost_Charge_Simple(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Charge Variable Name","",("This is the name associated with the UtilityCost:Charge:Simple object and will appear in the report.","In addition the results of the UtilityCost:Charge:Simple calculation are stored in a variable with the","same name.  That way the results may be used for further calculation.  Spaces are not significant in","Charge variable names. They are removed during the utility bill calculation process.","",)))
        self.InsertField(FieldText(self,"Tariff Name","",""))
        self.InsertField(FieldText(self,"Source Variable","",("The name of the source used by the UtilityCost:Charge:Simple.  This is usually the name of the variable","holding the energy or demand but may also be the name of any variable including the subtotal or basis","if other charges are based on those.","",)))
        self.InsertField(FieldChoice(self,"Season","",("If this is set to annual the calculations are performed for the UtilityCost:Charge:Simple for the entire","year (all months) otherwise it is calculated only for those months in the season defined.","",),["Annual","Summer","Winter","Spring","Fall",]))
        self.InsertField(FieldChoice(self,"Category Variable Name","",("This field shows where the charge should be added. The reason to enter this field appropriately is so","that the charge gets reported in a reasonable category.  The charge automatically gets added to the","variable that is the category.","",),["EnergyCharges","DemandCharges","ServiceCharges","Basis","Adjustment","Surcharge","Subtotal","Taxes","Total","NotIncluded",]))
        self.InsertField(FieldText(self,"Cost per Unit Value or Variable Name","",("This field contains either a single number or the name of a variable.  The number is multiplied with","all of the energy or demand or other source that is specified in the source field.  If a variable is","used then the monthly values of the variable are multiplied against the variable specified in the","source field.  This field makes it easy to include a simple charge without specifying block sizes.","This is a good way to include a tax or cost adjustment.","",)))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("UtilityCost:Charge:Simple")





class UtilityCost_Charge_Block(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Charge Variable Name","",("This is the name associated with the UtilityCost:Charge:Block object and will appear in the report.","In addition the results of the UtilityCost:Charge:Block are stored in a variable with the same name.","That way the results may be used for further calculation.","",)))
        self.InsertField(FieldText(self,"Tariff Name","",""))
        self.InsertField(FieldText(self,"Source Variable","",("The name of the source used by the UtilityCost:Charge:Block.  This is usually the name of the variable","holding the energy or demand but may also be the name of any variable including the subtotal or basis if","other charges are based on those.","",)))
        self.InsertField(FieldChoice(self,"Season","",("If this is set to annual the calculations are performed for the UtilityCost:Charge:Block for the entire","year (all months) otherwise it is calculated only for those months in the season defined.","",),["Annual","Summer","Winter","Spring","Fall",]))
        self.InsertField(FieldChoice(self,"Category Variable Name","",("This field shows where the charge should be added. The reason to enter this field appropriately is so","that the charge gets reported in a reasonable category.  The charge automatically gets added to the","variable that is the category.","",),["EnergyCharges","DemandCharges","ServiceCharges","Basis","Adjustment","Surcharge","Subtotal","Taxes","Total","NotIncluded",]))
        self.InsertField(FieldText(self,"Remaining Into Variable","",("If the blocks do not use all of the energy or demand from the source some energy and demand remains","then the remaining amount should be assigned to a variable. If no variable is assigned and some amount","of energy or demand is not used in the block structure a warning will be issued.","",)))
        self.InsertField(FieldText(self,"Block Size Multiplier Value or Variable Name","",("The sizes of the blocks are usually used directly but if a value or a variable is entered here the block","sizes entered in the rest of the charge are first multiplied by the entered value prior to being used.","This is common for rates that are kWh/kW rates and in that case the variable that holds the monthly","total electric demand would be entered.  If no value is entered a default value of one is assumed so","that the block sizes remain exactly as entered.  This field is unusual for the EnergyPlus syntax because","it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 1 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 1 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 2 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 2 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 3 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 3 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 4 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 4 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 5 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 5 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 6 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 6 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 7 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 7 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 8 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 8 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 9 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 9 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 10 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 10 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 11 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 11 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 12 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 12 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 13 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 13 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 14 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 14 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block Size 15 Value or Variable Name","",("The size of the block of the charges is entered here. For most rates that use multiple blocks this will","be the value for the block size. Using remaining may be used when the remaining amount should be included","in that block.  This field is unusual because it can be either a number or a name of a variable.","",)))
        self.InsertField(FieldText(self,"Block 15 Cost per Unit Value or Variable Name","",("The cost of the block. This field is unusual for the EnergyPlus syntax because it can be either a number","or a name of a variable.","",)))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("UtilityCost:Charge:Block")





class UtilityCost_Ratchet(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Ratchet Variable Name","",("The name of the ratchet and the name of the result of this single ratchet.","",)))
        self.InsertField(FieldText(self,"Tariff Name","",""))
        self.InsertField(FieldText(self,"Baseline Source Variable","",("When the ratcheted value exceeds the baseline value for a month the ratcheted value is used but when the","baseline value is greater then the ratcheted value the baseline value is used. Usually the electric","demand charge is used.  The baseline source variable can be the results of another ratchet object. This","allows utility tariffs that have multiple ratchets to be modeled.","",)))
        self.InsertField(FieldText(self,"Adjustment Source Variable","",("The variable that the ratchet is calculated from. It is often but not always the same as the baseline","source variable.  The ratcheting calculations using offset and multiplier are using the values from the","adjustment source variable. If left blank the adjustment source variable is the same as the baseline","source variable.","",)))
        self.InsertField(FieldChoice(self,"Season From","",("The name of the season that is being examined.  The maximum value for all of the months in the named","season is what is used with the multiplier and offset.  This is most commonly Summer or Annual.  When","Monthly is used the adjustment source variable is used directly for all months.","",),["Annual","Summer","Winter","Spring","Fall","Monthly",]))
        self.InsertField(FieldChoice(self,"Season To","",("The name of the season when the ratchet would be calculated.  This is most commonly Winter.  The ratchet","only is applied to the months in the named season. The resulting variable for months not in the Season To","selection will contain the values as appear in the baseline source variable.","",),["Annual","Summer","Winter","Spring","Fall",]))
        self.InsertField(FieldText(self,"Multiplier Value or Variable Name","",("Often the ratchet has a clause such as *the current month demand or 90% of the summer month demand*.  For","this case a value of 0.9 would be entered here as the multiplier.  This value may be left blank if no","multiplier is needed and a value of one will be used as a default.","",)))
        self.InsertField(FieldText(self,"Offset Value or Variable Name","",("A less common strategy is to say that the ratchet must be all demand greater than a value in this case","an offset that is added to the demand may be entered here. If entered it is common for the offset value","to be negative representing that the demand be reduced.   If no value is entered it is assumed to be","zero and not affect the ratchet.","",)))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("UtilityCost:Ratchet")





class UtilityCost_Variable(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Tariff Name","",""))
        self.InsertField(FieldReal(self,"January Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"February Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"March Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"April Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"May Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"June Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"July Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"August Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"September Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"October Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"November Value",0,"","","","",""))
        self.InsertField(FieldReal(self,"December Value",0,"","","","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Economics") 
        self.setExtensible(-1)
        self.setClassnameIDD("UtilityCost:Variable")





class UtilityCost_Computation(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldText(self,"Tariff Name","",""))
        self.InsertField(FieldText(self,"Compute Step 1","",("Contain a simple language that describes the steps used in the computation process similar to a","programming language.","",)))
        self.InsertField(FieldText(self,"Compute Step 2","",""))
        self.InsertField(FieldText(self,"Compute Step 3","",""))
        self.InsertField(FieldText(self,"Compute Step 4","",""))
        self.InsertField(FieldText(self,"Compute Step 5","",""))
        self.InsertField(FieldText(self,"Compute Step 6","",""))
        self.InsertField(FieldText(self,"Compute Step 7","",""))
        self.InsertField(FieldText(self,"Compute Step 8","",""))
        self.InsertField(FieldText(self,"Compute Step 9","",""))
        self.InsertField(FieldText(self,"Compute Step 10","",""))
        self.InsertField(FieldText(self,"Compute Step 11","",""))
        self.InsertField(FieldText(self,"Compute Step 12","",""))
        self.InsertField(FieldText(self,"Compute Step 13","",""))
        self.InsertField(FieldText(self,"Compute Step 14","",""))
        self.InsertField(FieldText(self,"Compute Step 15","",""))
        self.InsertField(FieldText(self,"Compute Step 16","",""))
        self.InsertField(FieldText(self,"Compute Step 17","",""))
        self.InsertField(FieldText(self,"Compute Step 18","",""))
        self.InsertField(FieldText(self,"Compute Step 19","",""))
        self.InsertField(FieldText(self,"Compute Step 20","",""))
        self.InsertField(FieldText(self,"Compute Step 21","",""))
        self.InsertField(FieldText(self,"Compute Step 22","",""))
        self.InsertField(FieldText(self,"Compute Step 23","",""))
        self.InsertField(FieldText(self,"Compute Step 24","",""))
        self.InsertField(FieldText(self,"Compute Step 25","",""))
        self.InsertField(FieldText(self,"Compute Step 26","",""))
        self.InsertField(FieldText(self,"Compute Step 27","",""))
        self.InsertField(FieldText(self,"Compute Step 28","",""))
        self.InsertField(FieldText(self,"Compute Step 29","",""))
        self.InsertField(FieldText(self,"Compute Step 30","",""))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("UtilityCost:Computation")





class Output_Reports(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Type of Report","","",["VariableDictionary","Surfaces","Construction","Schedules","Materials",]))
        self.InsertField(FieldChoice(self,"Report Name","",("(DXF,DXF:WireFrame,Lines,Details,Vertices,DetailsWithVertices) applicable to key=Surfaces","(Hourly,Timestep) applicable to key=Schedule Names","(IDF, only for VariableDictionary--will print available variables in IDF style with hourly frequency)","",),["DXF","DXF:WireFrame","VRML","Lines","Details","Vertices","DetailsWithVertices","ViewFactorInfo","Hourly","Timestep","IDF",]))
        self.InsertField(FieldChoice(self,"Report Specifications 1","",("(Triangulate 3DFace, Thick Polyline, Regular Polyline only for Surfaces, DXF and Surfaces, VRML reports;"," used to represent Surfaces with >4 sides)","default is Thick Polyline","(Lines, Polylines only for Surfaces, DXF:Wireframe report;"," used to represent Surfaces with >4 sides)","(IDF, only for Surfaces, Lines report -- will print transformed coordinates in IDF style)","",),["Triangulate3DFace","ThickPolyline","RegularPolyline","Lines","Polylines","IDF",]))
        self.InsertField(FieldText(self,"Report Specifications 2","",("Use ColorScheme Name for DXF reports","",)))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Reports")





class Output_VariableDictionary(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Key Field","","",["IDF","regular",]))
        self.InsertField(FieldChoice(self,"Sort Option","","",["Name","Unsorted",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:VariableDictionary")





class Output_Surfaces_List(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Report Type","",("(IDF, only for Surfaces, Lines report -- will print transformed coordinates in IDF style)","",),["Details","Vertices","DetailsWithVertices","ViewFactorInfo","Lines","IDF",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Surfaces:List")





class Output_Surfaces_Drawing(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Report Type","","",["DXF","DXF:WireFrame","VRML",]))
        self.InsertField(FieldChoice(self,"Report Specifications 1","","",["Triangulate3DFace","ThickPolyline","RegularPolyline","Lines","Polylines",]))
        self.InsertField(FieldText(self,"Report Specifications 2","",("Use ColorScheme Name for DXF reports","",)))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Surfaces:Drawing")





class Output_Schedules(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Key Field","","",["Hourly","Timestep",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Schedules")





class Output_Constructions(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Details Type 1","","",["Constructions","Materials",]))
        self.InsertField(FieldChoice(self,"Details Type 2","","",["Constructions","Materials",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Constructions")





class OutputControl_SurfaceColorScheme(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",("choose a name or use one of the DataSets","",)))
        self.InsertField(FieldChoice(self,"Drawing Element 1 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 1",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 2 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 2",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 3 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 3",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 4 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 4",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 5 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 5",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 6 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 6",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 7 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 7",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 8 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 8",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 9 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 9",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 10 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 10",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 11 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 11",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 12 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 12",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 13 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 13",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 14 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 14",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))
        self.InsertField(FieldChoice(self,"Drawing Element 15 Type","","",["Text","Walls","Windows","GlassDoors","Doors","Roofs","Floors","DetachedBuildingShades","DetachedFixedShades","AttachedBuildingShades","Photovoltaics","TubularDaylightDomes","TubularDaylightDiffusers","DaylightReferencePoint1","DaylightReferencePoint2",]))
        self.InsertField(FieldInt(self,"Color for Drawing Element 15",0,("use color number for output assignment (e.g. DXF)","",),0,255,"",""))


        self.insertMemo(("This object is used to set colors for reporting on various building elements particularly for the","DXF reports.  We know the user can enter 0 to 255 and the color map is availble in DXF output","as well as Google Sketchup.  Therefore, we are limiting the colors in that range.  You can","extend by editing the IDD but you do so on your own.  Colors not changed in any scheme will","remain as the default scheme uses.",))
        self.addReference("ColorSchemes")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("OutputControl:SurfaceColorScheme")





class Output_Table_SummaryReports(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Report 1 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 2 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 3 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 4 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 5 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 6 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 7 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 8 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 9 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 10 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 11 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 12 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 13 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 14 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))
        self.InsertField(FieldChoice(self,"Report 15 Name","","",["AllSummary","AllMonthly","AllSummaryAndMonthly","AnnualBuildingUtilityPerformanceSummary","InputVerificationandResultsSummary","DemandEndUseComponentsSummary","ClimaticDataSummary","EquipmentSummary","EnvelopeSummary","SurfaceShadowingSummary","ShadingSummary","LightingSummary","HVACSizingSummary","SystemSummary","ComponentSizingSummary","OutdoorAirSummary","ObjectCountSummary","ComponentCostEconomicsSummary","ZoneCoolingSummaryMonthly","ZoneHeatingSummaryMonthly","ZoneElectricSummaryMonthly","SpaceGainsMonthly","PeakSpaceGainsMonthly","SpaceGainComponentsAtCoolingPeakMonthly","EnergyConsumptionElectricityNaturalGasMonthly","EnergyConsumptionElectricityGeneratedPropaneMonthly","EnergyConsumptionDieselFuelOilMonthly","EnergyConsumptionDistrictHeatingCoolingMonthly","EnergyConsumptionCoalGasolineMonthly","EndUseEnergyConsumptionElectricityMonthly","EndUseEnergyConsumptionNaturalGasMonthly","EndUseEnergyConsumptionDieselMonthly","EndUseEnergyConsumptionFuelOilMonthly","EndUseEnergyConsumptionCoalMonthly","EndUseEnergyConsumptionPropaneMonthly","EndUseEnergyConsumptionGasolineMonthly","PeakEnergyEndUseElectricityPart1Monthly","PeakEnergyEndUseElectricityPart2Monthly","ElectricComponentsOfPeakDemandMonthly","PeakEnergyEndUseNaturalGasMonthly","PeakEnergyEndUseDieselMonthly","PeakEnergyEndUseFuelOilMonthly","PeakEnergyEndUseCoalMonthly","PeakEnergyEndUsePropaneMonthly","PeakEnergyEndUseGasolineMonthly","SetpointsNotMetWithTemperaturesMonthly","ComfortReportSimple55Monthly","UnglazedTranspiredSolarCollectorSummaryMonthly","OccupantComfortDataSummaryMonthly","ChillerReportMonthly","TowerReportMonthly","BoilerReportMonthly","DXReportMonthly","WindowReportMonthly","WindowEnergyReportMonthly","WindowZoneSummaryMonthly","WindowEnergyZoneSummaryMonthly","AverageOutdoorConditionsMonthly","OutdoorConditionsMaximumDryBulbMonthly","OutdoorConditionsMinimumDryBulbMonthly","OutdoorConditionsMaximumWetBulbMonthly","OutdoorConditionsMaximumDewPointMonthly","OutdoorGroundConditionsMonthly","WindowACReportMonthly","WaterHeaterReportMonthly","GeneratorReportMonthly","DaylightingReportMonthly","CoilReportMonthly","PlantLoopDemandReportMonthly","FanReportMonthly","PumpReportMonthly","CondLoopDemandReportMonthly","ZoneTemperatureOscillationReportMonthly","AirLoopSystemEnergyAndWaterUseMonthly","AirLoopSystemComponentLoadsMonthly","AirLoopSystemComponentEnergyUseMonthly","MechanicalVentilationLoadsMonthly",]))


        self.insertMemo(("This object allows the user to call report types that are predefined and will appear with the","other tabular reports.  These predefined reports are sensitive to the OutputControl:Table:Style object","and appear in the same files as the tabular reports.  The entries for this object is a list","of the predefined reports that should appear in the tabular report output file.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Table:SummaryReports")





class Output_Table_TimeBins(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Key Value","*",("use '*' (without quotes) to apply this variable to all keys","",)))
        self.InsertField(FieldObjectlist(self,"Variable Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldReal(self,"Interval Start",0,("The lowest value for the intervals being binned into.","",),"","","",""))
        self.InsertField(FieldReal(self,"Interval Size",0,("The size of the bins starting with Interval start.","",),"","","",""))
        self.InsertField(FieldInt(self,"Interval Count",0,("The number of bins used. The number of hours below the start of the Lowest bin and above the value of the last bin","are also shown.","",),1,20,"",""))
        self.InsertField(FieldObjectlist(self,"Schedule Name","",("Optional schedule name. Binning is performed for non-zero hours.  Binning always performed if left blank.","",),"ScheduleNames"))


        self.setRequired(False)
        self.setMinfields(5)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Table:TimeBins")





class Output_Table_Monthly(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldInt(self,"Digits After Decimal","2","",0,10,"",""))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 1 Name","",("The name of a report variable or a meter that is available in the RDD file.","",),"autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 1","",("The method of aggregation for the selected variable or meter.","SumOrAverage adds up the values for every timestep in the month if the variable is a sum variable. If the","  variable is an average variable it reports the average value. This is probably the most common","  Aggregation Type option to choose.","Maximum and Minimum find the maximum and minimum value for the month and report it along with the","  time that it first occurred.  When Maximum or Minimum are selected a column is automatically shown","  in the output report for the time that it occurred.  When Maximum or Minimum are used with an average","  variable the value is divided by the length of the timestep.","ValueWhenMaxMin looks at the previous variable in the report that sets a maximum or minimum and","  displays the value of the current variable at that same timestep.  Order of the variables in the","  report is important when using ValueWhenMaxMin.  This can be used when an outdoor temperature","  should be reported for the time of the maximum cooling load.","HoursNonZero adds up the elapsed time during the month that this variable is non-zero and would","  be appropriate to determine the number of hour that a fan operates.","HoursZero - The HoursZero option adds up the elapsed time during the month that this variable has a zero","  value and would be appropriate to determine the number of hour that a fan does not operate.","HoursPositive - The HoursPositive option adds up the elapsed time during the month that this variable","  has a positive value.  Hours with a zero value are not included.","HoursNonPositive - The HoursNonPositive option adds up the elaspsed time during the month that this","  variable has non-positive value. Hours with a negative value and hours with a zero value are all included.","HoursNegative - The HoursNegative option adds up the elapsed time during the month that this variable","  has a negative value.  Hours with a zero value are not included.","HoursNonNegative - The HoursNonNegative option adds up the elaspsed time during the month that this","  variable has non-negative value. Hours with a positive value and hours with a zero value are all included.","SumOrAverageDuringHoursShown - Provides the sum or average of the named variable when during the hours","  that the previous variable displayed with any of the Aggregation Types starting with *Hours*. For *sum*","  type variables adds up the values for each timestep and reports the sum of the value monthly during the","  hours reported on the previous variable.  For *average* type variables, the value shown will be the","  average for the month during the hours reported on the previous variable.  Order of the variables in the","  report is important when using this Aggregation Type.","MaximumDuringHoursShown - Reports the maximum value and the time that the maximum value occurred but only","  during the hours reported with the previous *hours-* Aggregation Type.  When the Maximum option is used","  with an average variable the value is divided by the length of the timestep.  Order of the variables in","  the report is important when using this Aggregation Type.","MinimumDuringHoursShown - Reports the minimum value and the time that the minimum value occurred but only","  during the hours reported with the previous *hours-* Aggregation Type.  When the Minimum option is used","  with an average variable the value is divided by the length of the timestep.  Order of the variables in","  the report is important when using this Aggregation Type.","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 2 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 2","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 3 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 3","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 4 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 4","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 5 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 5","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 6 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 6","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 7 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 7","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 8 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 8","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 9 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 9","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 10 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 10","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 11 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 11","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 12 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 12","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 13 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 13","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 14 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 14","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 15 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 15","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 16 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 16","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 17 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 17","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 18 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 18","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 19 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 19","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 20 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 20","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 21 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 21","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 22 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 22","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 23 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 23","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 24 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 24","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))
        self.InsertField(FieldObjectlist(self,"Variable or Meter 25 Name","","","autoRDDvariableMeter"))
        self.InsertField(FieldChoice(self,"Aggregation Type for Variable or Meter 25","",("See instructions under AggregationType01","",),["SumOrAverage","Maximum","Minimum","ValueWhenMaximumOrMinimum","HoursNonZero","HoursZero","HoursPositive","HoursNonPositive","HoursNegative","HoursNonNegative","SumOrAverageDuringHoursShown","MaximumDuringHoursShown","MinimumDuringHoursShown",]))


        self.addReference("StandardReportNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Table:Monthly")





class OutputControl_Table_Style(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Column Separator","","",["Comma","Tab","Fixed","HTML","CommaAndHTML","TabAndHTML","All",]))
        self.InsertField(FieldChoice(self,"Unit Conversion","","",["None","JtoKWH","JtoMJ","JtoGJ","InchPound",]))


        self.insertMemo(("default style for the OutputControl:Table:Style is comma -- this works well for","importing into spreadsheet programs such as Excel(tm) but not so well for word","processing progams -- there tab may be a better choice.  fixed puts spaces between","the *columns*.  HTML produces tables in HTML.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("OutputControl:Table:Style")





class Output_Variable(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Key Value","*",("use '*' (without quotes) to apply this variable to all keys","",)))
        self.InsertField(FieldObjectlist(self,"Variable Name","","","autoRDDvariable"))
        self.InsertField(FieldChoice(self,"Reporting Frequency","",("Detailed lists every instance (i.e. HVAC variable timesteps)","Timestep refers to the zone Timestep/Number of Timesteps in hour value","RunPeriod, Environment, and Annual are the same","RunPeriod, Environment, and Annual are synonymous","",),["Detailed","Timestep","Hourly","Daily","Monthly","RunPeriod","Environment","Annual",]))
        self.InsertField(FieldObjectlist(self,"Schedule Name","","","ScheduleNames"))


        self.insertMemo(("each Output:Variable command picks variables to be put onto the standard output file (.eso)","some variables may not be reported for every simulation.","a list of variables that can be reported are available after a run on the report dictionary file (.rdd)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Variable")





class Output_Meter(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Form is EnergyUseType:..., e.g. Electricity:* for all Electricity meters","or EndUse:..., e.g. GeneralLights:* for all General Lights","Report Meter puts results on both the eplusout.mtr and eplusout.eso files","",),"autoRDDmeter"))
        self.InsertField(FieldChoice(self,"Reporting Frequency","",("Timestep refers to the zone Timestep/Number of Timesteps in hour value","RunPeriod, Environment, and Annual are the same","RunPeriod, Environment, and Annual are synonymous","",),["Timestep","Hourly","Daily","Monthly","RunPeriod","Environment","Annual",]))


        self.insertMemo(("each Output:Meter command picks meters to be put onto the standard output file (.eso) and","meter file (.mtr). Not all meters are reported in every simulation.","a list of meters that can be reported are available after a run on the meter dictionary file (.mdd)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Meter")





class Output_Meter_MeterFileOnly(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Form is EnergyUseType:..., e.g. Electricity:* for all Electricity meters","or EndUse:..., e.g. GeneralLights:* for all General Lights","Report MeterFileOnly puts results on the eplusout.mtr file only","",),"autoRDDmeter"))
        self.InsertField(FieldChoice(self,"Reporting Frequency","",("Timestep refers to the zone Timestep/Number of Timesteps in hour value","RunPeriod, Environment, and Annual are the same","RunPeriod, Environment, and Annual are synonymous","",),["Timestep","Hourly","Daily","Monthly","RunPeriod","Environment","Annual",]))


        self.insertMemo(("each Output:Meter:MeterFileOnly command picks meters to be put only onto meter file (.mtr).","Not all meters are reported in every simulation.","a list of meters that can be reported are available after a run on the meter dictionary file (.mdd)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Meter:MeterFileOnly")





class Output_Meter_Cumulative(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Form is EnergyUseType:..., e.g. Electricity:* for all Electricity meters","or EndUse:..., e.g. GeneralLights:* for all General Lights","Report Meter puts results on both the eplusout.mtr and eplusout.eso files","",),"autoRDDmeter"))
        self.InsertField(FieldChoice(self,"Reporting Frequency","",("Timestep refers to the zone Timestep/Number of Timesteps in hour value","RunPeriod, Environment, and Annual are the same","RunPeriod, Environment, and Annual are synonymous","",),["Timestep","Hourly","Daily","Monthly","RunPeriod","Environment","Annual",]))


        self.insertMemo(("each Output:Meter:Cumulative command picks meters to be reported cumulatively onto the","standard output file (.eso) and meter file (.mtr). Not all meters are reported in every simulation.","a list of meters that can be reported are available after a run on the meter dictionary file (.mdd)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Meter:Cumulative")





class Output_Meter_Cumulative_MeterFileOnly(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldObjectlist(self,"Name","",("Form is EnergyUseType:..., e.g. Electricity:* for all Electricity meters","or EndUse:..., e.g. GeneralLights:* for all General Lights","Report MeterFileOnly puts results on the eplusout.mtr file only","",),"autoRDDmeter"))
        self.InsertField(FieldChoice(self,"Reporting Frequency","",("Timestep refers to the zone Timestep/Number of Timesteps in hour value","RunPeriod, Environment, and Annual are the same","RunPeriod, Environment, and Annual are synonymous","",),["Timestep","Hourly","Daily","Monthly","RunPeriod","Environment","Annual",]))


        self.insertMemo(("each Output:Meter:Cumulative:MeterFileOnly command picks meters to be reported cumulatively onto the","standard output file (.eso) and meter file (.mtr). Not all meters are reported in every simulation.","a list of meters that can be reported are available after a run on the meter dictionary file (.mdd)",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Meter:Cumulative:MeterFileOnly")





class Meter_Custom(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Water","Generic",]))
        self.InsertField(FieldText(self,"Key Name 1","",""))
        self.InsertField(FieldText(self,"Report Variable or Meter Name 1","",""))


        self.insertMemo(("Used to allow users to combine specific variables and/or meters into","*custom* meter configurations.",))
        self.addReference("CustomMeterNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(2)
        self.setClassnameIDD("Meter:Custom")





class Meter_CustomDecrement(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Name","",""))
        self.InsertField(FieldChoice(self,"Fuel Type","","",["Electricity","NaturalGas","PropaneGas","FuelOil#1","FuelOil#2","Coal","Diesel","Gasoline","Water","Generic",]))
        self.InsertField(FieldText(self,"Source Meter Name","",""))
        self.InsertField(FieldText(self,"Key Name 1","",""))
        self.InsertField(FieldText(self,"Report Variable or Meter Name 1","",""))


        self.insertMemo(("Used to allow users to combine specific variables and/or meters into","*custom* meter configurations.",))
        self.addReference("CustomMeterNames")
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(2)
        self.setClassnameIDD("Meter:CustomDecrement")





class Output_SQLite(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Option Type","Simple","",["Simple",]))


        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:SQLite")





class Output_EnvironmentalImpactFactors(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Reporting Frequency","","",["Timestep","Hourly","Daily","Monthly","RunPeriod",]))


        self.insertMemo(("This is used to Automatically report the facility meters and turn on the Environmental Impact Report calculations","for all of the Environmental Factors.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:EnvironmentalImpactFactors")





class EnvironmentalImpactFactors(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"District Heating Efficiency","0.3",("District heating efficiency used when converted to natural gas","",),"",1.0,0.0,""))
        self.InsertField(FieldReal(self,"District Cooling COP","3.0",("District cooling COP used when converted to electricity","",),"","",0.0,""))
        self.InsertField(FieldReal(self,"Steam Conversion Efficiency","0.25",("Steam conversion efficiency used to convert steam usage to natural gas","",),"",1.0,0.0,""))
        self.InsertField(FieldReal(self,"Total Carbon Equivalent Emission Factor From NOx",0,"","","","",""))
        self.InsertField(FieldReal(self,"Total Carbon Equivalent Emission Factor From CH4",0,"","","","",""))
        self.InsertField(FieldReal(self,"Total Carbon Equivalent Emission Factor From CO2",0,"","","","",""))


        self.insertMemo(("Used to help convert district and ideal energy use to a fuel type and provide total carbon equivalent with coefficients","Also used in Source=>Site conversions.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("EnvironmentalImpactFactors")





class FuelFactors(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Existing Fuel Resource Name","","",["Electricity","NaturalGas","FuelOil#1","FuelOil#2","Coal","Gasoline","Propane","Diesel",]))
        self.InsertField(FieldText(self,"Units of Measure","",""))
        self.InsertField(FieldReal(self,"Energy per Unit Factor",0,"","","","",""))
        self.InsertField(FieldReal(self,"Source Energy Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Source Energy Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"CO2 Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"CO2 Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"CO Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"CO Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"CH4 Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"CH4 Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"NOx Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"NOx Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"N2O Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"N2O Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"SO2 Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"SO2 Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"PM Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"PM Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"PM10 Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"PM10 Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"PM2.5 Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"PM2.5 Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"NH3 Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"NH3 Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"NMVOC Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"NMVOC Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Hg Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Hg Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Pb Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Pb Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Water Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Water Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Nuclear High Level Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Nuclear High Level Emission Factor Schedule Name","","","ScheduleNames"))
        self.InsertField(FieldReal(self,"Nuclear Low Level Emission Factor",0,"","","","",""))
        self.InsertField(FieldObjectlist(self,"Nuclear Low Level Emission Factor Schedule Name","","","ScheduleNames"))


        self.insertMemo(("Provides Fuel Factors for Emissions as well as Source=>Site conversions.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("FuelFactors")





class Output_Diagnostics(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldChoice(self,"Key 1","","",["DisplayAllWarnings","DisplayExtraWarnings","DisplayUnusedSchedules","DisplayUnusedObjects","DisplayAdvancedReportVariables","DisplayZoneAirHeatBalanceOffBalance","DoNotMirrorDetachedShading","DisplayWeatherMissingDataWarnings",]))
        self.InsertField(FieldChoice(self,"Key 2","","",["DisplayAllWarnings","DisplayExtraWarnings","DisplayUnusedSchedules","DisplayUnusedObjects","DisplayAdvancedReportVariables","DisplayZoneAirHeatBalanceOffBalance","DoNotMirrorDetachedShading","DisplayWeatherMissingDataWarnings",]))


        self.insertMemo(("Special keys to produce certain warning messages or effect certain simulation characteristics.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:Diagnostics")





class Output_DebuggingData(ObjectSingleLine):
    def CreateFields(self) :
        self.InsertField(FieldReal(self,"Report Debugging Data",0,("value=1 then yes all others no","",),"","","",""))
        self.InsertField(FieldReal(self,"Report During Warmup",0,("value=1 then always even during warmup  all others no","",),"","","",""))


        self.insertMemo(("switch eplusout.dbg file on or off",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:DebuggingData")





class Output_PreprocessorMessage(ObjectAbstract):
    def CreateFields(self) :
        self.InsertField(FieldText(self,"Preprocessor Name","",""))
        self.InsertField(FieldChoice(self,"Error Severity","",("Depending on type, InputProcessor may terminate the program.","",),["Information","Warning","Severe","Fatal",]))
        self.InsertField(FieldText(self,"Message Line 1","",""))
        self.InsertField(FieldText(self,"Message Line 2","",""))
        self.InsertField(FieldText(self,"Message Line 3","",""))
        self.InsertField(FieldText(self,"Message Line 4","",""))
        self.InsertField(FieldText(self,"Message Line 5","",""))
        self.InsertField(FieldText(self,"Message Line 6","",""))
        self.InsertField(FieldText(self,"Message Line 7","",""))
        self.InsertField(FieldText(self,"Message Line 8","",""))
        self.InsertField(FieldText(self,"Message Line 9","",""))
        self.InsertField(FieldText(self,"Message Line 10","",""))


        self.insertMemo(("This object does not come from a user input.  This is generated by a pre-processor","so that various conditions can be gracefully passed on by the InputProcessor.",))
        self.setRequired(False)
        self.setMinfields(0)
        self.setGroup("Output Reporting") 
        self.setExtensible(-1)
        self.setClassnameIDD("Output:PreprocessorMessage")






olist = []
olist.append("RoomAirSettings:UnderFloorAirDistributionExterior")
olist.append("People")
olist.append("ComfortViewFactorAngles")
olist.append("Lights")
olist.append("ElectricEquipment")
olist.append("GasEquipment")
olist.append("HotWaterEquipment")
olist.append("SteamEquipment")
olist.append("OtherEquipment")
idfglobals.objectdict["Internal Gains"] = olist
olist = []
olist.append("Schedule:Constant")
olist.append("Material")
olist.append("Material:NoMass")
olist.append("Material:InfraredTransparent")
olist.append("Material:AirGap")
olist.append("Material:RoofVegetation")
olist.append("RoofIrrigation")
olist.append("WindowMaterial:Glazing")
olist.append("WindowMaterial:GlazingGroup:Thermochromic")
olist.append("WindowMaterial:Glazing:RefractionExtinctionMethod")
olist.append("WindowMaterial:Gas")
olist.append("WindowMaterial:GasMixture")
olist.append("WindowMaterial:Shade")
olist.append("WindowMaterial:Blind")
olist.append("WindowMaterial:Screen")
olist.append("MaterialProperty:MoisturePenetrationDepth:Settings")
olist.append("MaterialProperty:PhaseChange")
olist.append("MaterialProperty:HeatAndMoistureTransfer:Settings")
olist.append("MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm")
olist.append("MaterialProperty:HeatAndMoistureTransfer:Suction")
olist.append("MaterialProperty:HeatAndMoistureTransfer:Redistribution")
olist.append("MaterialProperty:HeatAndMoistureTransfer:Diffusion")
olist.append("MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity")
olist.append("MaterialProperty:GlazingSpectralData")
olist.append("Construction")
olist.append("Construction:InternalSource")
idfglobals.objectdict["Surface Construction Elements"] = olist
olist = []
olist.append("FanPerformance:NightVentilation")
olist.append("Coil:Cooling:Water")
olist.append("Coil:Cooling:Water:DetailedGeometry")
olist.append("Coil:Cooling:DX:SingleSpeed")
olist.append("Coil:Cooling:DX:TwoSpeed")
olist.append("Coil:Cooling:DX:MultiSpeed")
olist.append("Coil:Cooling:DX:TwoStageWithHumidityControlMode")
olist.append("CoilPerformance:DX:Cooling")
olist.append("Coil:Heating:Water")
olist.append("Coil:Heating:Steam")
olist.append("Coil:Heating:Electric")
olist.append("Coil:Heating:Gas")
olist.append("Coil:Heating:Desuperheater")
olist.append("Coil:Heating:DX:SingleSpeed")
olist.append("Coil:Heating:DX:MultiSpeed")
olist.append("Coil:Cooling:WaterToAirHeatPump:ParameterEstimation")
olist.append("Coil:Heating:WaterToAirHeatPump:ParameterEstimation")
olist.append("Coil:Cooling:WaterToAirHeatPump:EquationFit")
olist.append("Coil:Heating:WaterToAirHeatPump:EquationFit")
olist.append("Coil:WaterHeating:AirToWaterHeatPump")
olist.append("Coil:WaterHeating:Desuperheater")
olist.append("CoilSystem:Cooling:Water:HeatExchangerAssisted")
idfglobals.objectdict["Coils"] = olist
olist = []
olist.append("SolarCollector:UnglazedTranspired:Multisystem")
olist.append("Boiler:HotWater")
olist.append("Boiler:Steam")
olist.append("Boiler:HotWater:SPARK")
olist.append("Chiller:Electric:EIR")
olist.append("Chiller:Electric:ReformulatedEIR")
olist.append("Chiller:Electric")
olist.append("Chiller:Electric:SPARK")
olist.append("Chiller:Absorption:Indirect")
olist.append("Chiller:Absorption")
olist.append("Chiller:ConstantCOP")
olist.append("Chiller:EngineDriven")
olist.append("Chiller:CombustionTurbine")
olist.append("ChillerHeater:Absorption:DirectFired")
olist.append("HeatPump:WaterToWater:EquationFit:Heating")
olist.append("HeatPump:WaterToWater:EquationFit:Cooling")
olist.append("HeatPump:WaterToWater:ParameterEstimation:Cooling")
olist.append("HeatPump:WaterToWater:ParameterEstimation:Heating")
olist.append("DistrictCooling")
idfglobals.objectdict["Plant Heating and Cooling Equipment"] = olist
olist = []
olist.append("ZoneHVAC:EquipmentConnections")
olist.append("Fan:ConstantVolume")
olist.append("Fan:VariableVolume")
olist.append("Fan:OnOff")
olist.append("Fan:ZoneExhaust")
idfglobals.objectdict["Fans"] = olist
olist = []
olist.append("SetpointManager:WarmestTemperatureFlow")
olist.append("Refrigeration:Case")
olist.append("Refrigeration:CompressorRack")
olist.append("Refrigeration:CaseList")
olist.append("Refrigeration:Condenser:AirCooled")
olist.append("Refrigeration:Condenser:EvaporativeCooled")
olist.append("Refrigeration:Condenser:WaterCooled")
olist.append("Refrigeration:Subcooler")
olist.append("Refrigeration:Compressor")
olist.append("Refrigeration:CompressorList")
idfglobals.objectdict["Refrigeration"] = olist
olist = []
olist.append("HeatExchanger:WatersideEconomizer")
olist.append("WaterHeater:Mixed")
olist.append("WaterHeater:Stratified")
olist.append("WaterHeater:Sizing")
olist.append("WaterHeater:HeatPump")
olist.append("ThermalStorage:Ice:Simple")
olist.append("ThermalStorage:Ice:Detailed")
olist.append("ThermalStorage:ChilledWater:Mixed")
idfglobals.objectdict["Water Heaters and Thermal Storage"] = olist
olist = []
olist.append("WaterUse:RainCollector")
olist.append("Curve:Linear")
olist.append("Curve:Quadratic")
olist.append("Curve:Cubic")
olist.append("Curve:Exponent")
olist.append("Curve:Biquadratic")
olist.append("Curve:Bicubic")
olist.append("Curve:QuadraticLinear")
idfglobals.objectdict["Performance Curves"] = olist
olist = []
olist.append("ZoneBaseboard:OutdoorTemperatureControlled")
olist.append("Daylighting:Controls")
olist.append("Daylighting:DELight:Controls")
olist.append("Daylighting:DELight:ReferencePoint")
olist.append("Daylighting:DELight:ComplexFenestration")
olist.append("DaylightingDevice:Tubular")
olist.append("DaylightingDevice:Shelf")
olist.append("DaylightingDevice:LightWell")
olist.append("Output:IlluminanceMap")
idfglobals.objectdict["Daylighting"] = olist
olist = []
olist.append("ThermalStorage:ChilledWater:Stratified")
olist.append("PlantLoop")
olist.append("CondenserLoop")
olist.append("Pipe:Adiabatic")
olist.append("Pipe:Adiabatic:Steam")
olist.append("Pipe:Indoor")
olist.append("Pipe:Outdoor")
olist.append("Pipe:Underground")
olist.append("PlantLoopConnection")
idfglobals.objectdict["Plant-Condenser Loops"] = olist
olist = []
olist.append("AirflowNetwork:Distribution:Linkage")
olist.append("Exterior:Lights")
olist.append("Exterior:FuelEquipment")
idfglobals.objectdict["Exterior Equipment"] = olist
olist = []
olist.append("ZoneProperty:UserViewFactors")
olist.append("RoomAirModelType")
olist.append("RoomAir:TemperaturePattern:UserDefined")
olist.append("RoomAir:TemperaturePattern:ConstantGradient")
olist.append("RoomAir:TemperaturePattern:TwoGradient")
olist.append("RoomAir:TemperaturePattern:NondimensionalHeight")
olist.append("RoomAir:TemperaturePattern:SurfaceMapping")
olist.append("RoomAir:Node")
olist.append("RoomAirSettings:OneNodeDisplacementVentilation")
olist.append("RoomAirSettings:ThreeNodeDisplacementVentilation")
olist.append("RoomAirSettings:CrossVentilation")
olist.append("RoomAirSettings:UnderFloorAirDistributionInterior")
idfglobals.objectdict["Room Air Models"] = olist
olist = []
olist.append("Dehumidifier:Desiccant:System")
olist.append("HeatExchanger:AirToAir:FlatPlate")
olist.append("HeatExchanger:AirToAir:SensibleAndLatent")
olist.append("HeatExchanger:Desiccant:BalancedFlow")
idfglobals.objectdict["Heat Recovery"] = olist
olist = []
olist.append("ElectricLoadCenter:Distribution")
olist.append("WaterUse:Equipment")
olist.append("WaterUse:Connections")
olist.append("WaterUse:Storage")
olist.append("WaterUse:Well")
idfglobals.objectdict["Water Systems"] = olist
olist = []
olist.append("AirLoopHVAC:ControllerList")
olist.append("AirLoopHVAC")
olist.append("AirLoopHVAC:OutdoorAirSystem:EquipmentList")
olist.append("AirLoopHVAC:OutdoorAirSystem")
olist.append("OutdoorAir:Mixer")
olist.append("AirLoopHVAC:ZoneSplitter")
olist.append("AirLoopHVAC:SupplyPlenum")
olist.append("AirLoopHVAC:SupplyPath")
olist.append("AirLoopHVAC:ZoneMixer")
olist.append("AirLoopHVAC:ReturnPlenum")
olist.append("AirLoopHVAC:ReturnPath")
idfglobals.objectdict["Air Distribution"] = olist
olist = []
olist.append("HVACTemplate:Plant:Boiler")
olist.append("Sizing:Parameters")
olist.append("Sizing:Zone")
olist.append("Sizing:System")
olist.append("Sizing:Plant")
idfglobals.objectdict["HVAC Design Objects"] = olist
olist = []
olist.append("FluidProperties:Concentration")
olist.append("CurrencyType")
olist.append("ComponentCost:Adjustments")
olist.append("ComponentCost:Reference")
olist.append("ComponentCost:LineItem")
olist.append("UtilityCost:Tariff")
olist.append("UtilityCost:Qualify")
olist.append("UtilityCost:Charge:Simple")
olist.append("UtilityCost:Charge:Block")
olist.append("UtilityCost:Ratchet")
olist.append("UtilityCost:Variable")
idfglobals.objectdict["Economics"] = olist
olist = []
olist.append("DemandManagerAssignmentList")
olist.append("Generator:InternalCombustionEngine")
olist.append("Generator:CombustionTurbine")
olist.append("Generator:MicroTurbine")
olist.append("Generator:Photovoltaic")
olist.append("PhotovoltaicPerformance:Simple")
olist.append("PhotovoltaicPerformance:EquivalentOne-Diode")
olist.append("PhotovoltaicPerformance:Sandia")
olist.append("Generator:FuelCell")
olist.append("Generator:FuelCell:PowerModule")
olist.append("Generator:FuelCell:AirSupply")
olist.append("Generator:FuelCell:WaterSupply")
olist.append("Generator:FuelCell:AuxiliaryHeater")
olist.append("Generator:FuelCell:ExhaustGasToWaterHeatExchanger")
olist.append("Generator:FuelCell:ElectricalStorage")
olist.append("Generator:FuelCell:Inverter")
olist.append(" Generator:FuelCell:StackCooler")
olist.append("Generator:MicroCHP")
olist.append("Generator:MicroCHP:NonNormalizedParameters")
olist.append("Generator:FuelSupply")
olist.append("ElectricLoadCenter:Generators")
olist.append("ElectricLoadCenter:Inverter:Simple")
olist.append("ElectricLoadCenter:Inverter:FunctionOfPower")
olist.append("ElectricLoadCenter:Inverter:LookUpTable")
olist.append("ElectricLoadCenter:Storage:Simple")
idfglobals.objectdict["Electric Load Center-Generator Specifications"] = olist
olist = []
olist.append("ZoneThermalChimney")
olist.append("AirflowNetwork:SimulationControl")
olist.append("AirflowNetwork:MultiZone:Zone")
olist.append("AirflowNetwork:MultiZone:Surface")
olist.append("AirflowNetwork:MultiZone:ReferenceCrackConditions")
olist.append("AirflowNetwork:MultiZone:Surface:Crack")
olist.append("AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea")
olist.append("AirflowNetwork:MultiZone:Component:DetailedOpening")
olist.append("AirflowNetwork:MultiZone:Component:SimpleOpening")
olist.append("AirflowNetwork:MultiZone:Component:ZoneExhaustFan")
olist.append("AirflowNetwork:MultiZone:ExternalNode")
olist.append("AirflowNetwork:MultiZone:WindPressureCoefficientArray")
olist.append("AirflowNetwork:MultiZone:WindPressureCoefficientValues")
olist.append("AirflowNetwork:Distribution:Node")
olist.append("AirflowNetwork:Distribution:Component:Leak")
olist.append("AirflowNetwork:Distribution:Component:LeakageRatio")
olist.append("AirflowNetwork:Distribution:Component:Duct")
olist.append("AirflowNetwork:Distribution:Component:ConstantVolumeFan")
olist.append("AirflowNetwork:Distribution:Component:Coil")
olist.append("AirflowNetwork:Distribution:Component:HeatExchanger")
olist.append("AirflowNetwork:Distribution:Component:TerminalUnit")
olist.append("AirflowNetwork:Distribution:Component:ConstantPressureDrop")
idfglobals.objectdict["Natural Ventilation and Duct Leakage"] = olist
olist = []
olist.append("ShadingProperty:Reflectance")
olist.append("SurfaceControl:MovableInsulation")
olist.append("SurfaceProperty:OtherSideCoefficients")
olist.append("SurfaceProperty:OtherSideConditionsModel")
olist.append("SurfaceProperty:ConvectionCoefficients")
olist.append("SurfaceProperty:ConvectionCoefficients:MultipleSurface")
olist.append("SurfaceProperties:VaporCoefficients")
olist.append("SurfaceProperty:ExteriorNaturalVentedCavity")
idfglobals.objectdict["Advanced Surface Concepts"] = olist
olist = []
olist.append("OutdoorAir:NodeList")
olist.append("Pump:VariableSpeed")
olist.append("Pump:ConstantSpeed")
olist.append("Pump:VariableSpeed:Condensate")
olist.append("HeaderedPumps:VariableSpeed")
idfglobals.objectdict["Pumps"] = olist
olist = []
olist.append("PlantLoopConnection:Controlled")
olist.append("PlantEquipmentList")
olist.append("CondenserEquipmentList")
olist.append("PlantEquipmentOperation:Uncontrolled")
olist.append("PlantEquipmentOperation:CoolingLoad")
olist.append("PlantEquipmentOperation:HeatingLoad")
olist.append("PlantEquipmentOperation:OutdoorDryBulb")
olist.append("PlantEquipmentOperation:OutdoorWetBulb")
olist.append("PlantEquipmentOperation:OutdoorRelativeHumidity")
olist.append("PlantEquipmentOperation:ComponentSetpoint")
olist.append("PlantEquipmentOperation:OutdoorDryBulbDifference")
olist.append("PlantEquipmentOperation:OutdoorWetBulbDifference")
olist.append("PlantEquipmentOperation:OutdoorDewpoint")
olist.append("PlantEquipmentOperation:OutdoorDewpointDifference")
olist.append("PlantEquipmentOperationSchemes")
idfglobals.objectdict["Plant-Condenser Control"] = olist
olist = []
olist.append("Compliance:Building")
olist.append("Site:Location")
olist.append("SizingPeriod:DesignDay")
olist.append("SizingPeriod:WeatherFileDays")
olist.append("SizingPeriod:WeatherFileConditionType")
olist.append("RunPeriod")
olist.append("RunPeriodControl:SpecialDays")
olist.append("RunPeriodControl:DaylightSavingTime")
olist.append("Site:WeatherStation")
olist.append("Site:HeightVariation")
olist.append("Site:GroundTemperature:BuildingSurface")
olist.append("Site:GroundTemperature:Shallow")
olist.append("Site:GroundTemperature:Deep")
olist.append("Site:GroundReflectance")
olist.append("Site:GroundReflectance:SnowModifier")
olist.append("Site:WaterMainsTemperature")
idfglobals.objectdict["Location and Climate"] = olist
olist = []
olist.append("HeaderedPumps:ConstantSpeed")
idfglobals.objectdict["Plant-Condenser Flow Control"] = olist
olist = []
olist.append("Construction:WindowDataFile")
olist.append("GlobalGeometryRules")
olist.append("GeometryTransform")
olist.append("Zone")
olist.append("ZoneList")
olist.append("ZoneGroup")
olist.append("BuildingSurface:Detailed")
olist.append("Wall:Detailed")
olist.append("RoofCeiling:Detailed")
olist.append("Floor:Detailed")
olist.append("Wall:Exterior")
olist.append("Wall:Adiabatic")
olist.append("Wall:Underground")
olist.append("Wall:Interzone")
olist.append("Roof")
olist.append("Ceiling:Adiabatic")
olist.append("Ceiling:Interzone")
olist.append("Floor:GroundContact")
olist.append("Floor:Adiabatic")
olist.append("Floor:Interzone")
olist.append("FenestrationSurface:Detailed")
olist.append("Window")
olist.append("Door")
olist.append("GlazedDoor")
olist.append("Window:Interzone")
olist.append("Door:Interzone")
olist.append("GlazedDoor:Interzone")
olist.append("WindowProperty:ShadingControl")
olist.append("WindowProperty:FrameAndDivider")
olist.append("WindowProperty:AirflowControl")
olist.append("WindowProperty:StormWindow")
olist.append("InternalMass")
olist.append("Shading:Site")
olist.append("Shading:Building")
olist.append("Shading:Site:Detailed")
olist.append("Shading:Building:Detailed")
olist.append("Shading:Overhang")
olist.append("Shading:Overhang:Projection")
olist.append("Shading:Fin")
olist.append("Shading:Fin:Projection")
olist.append("Shading:Zone:Detailed")
idfglobals.objectdict["Thermal Zones and Surfaces"] = olist
olist = []
olist.append("Curve:Triquadratic")
olist.append("FluidProperties:Names")
olist.append("FluidProperties:GlycolConcentrations")
olist.append("FluidProperties:Temperatures")
olist.append("FluidProperties:Saturated")
olist.append("FluidProperties:Superheated")
idfglobals.objectdict["Fluid Properties"] = olist
olist = []
olist.append("Duct")
olist.append("Branch")
olist.append("BranchList")
olist.append("Connector:Splitter")
olist.append("Connector:Mixer")
olist.append("ConnectorList")
olist.append("NodeList")
olist.append("OutdoorAir:Node")
idfglobals.objectdict["Node-Branch Management"] = olist
olist = []
olist.append("AvailabilityManagerAssignmentList")
olist.append("SetpointManager:Scheduled")
olist.append("SetpointManager:Scheduled:DualSetpoint")
olist.append("SetpointManager:OutdoorAirReset")
olist.append("SetpointManager:SingleZone:Reheat")
olist.append("SetpointManager:SingleZone:Heating")
olist.append("SetpointManager:SingleZone:Cooling")
olist.append("SetpointManager:SingleZone:Humidity:Minimum")
olist.append("SetpointManager:SingleZone:Humidity:Maximum")
olist.append("SetpointManager:MixedAir")
olist.append("SetpointManager:OutdoorAirPretreat")
olist.append("SetpointManager:Warmest")
olist.append("SetpointManager:Coldest")
olist.append("SetpointManager:ReturnAirBypassFlow")
idfglobals.objectdict["Setpoint Managers"] = olist
olist = []
olist.append("ZoneHVAC:AirDistributionUnit")
olist.append("ZoneHVAC:EquipmentList")
idfglobals.objectdict["Zone HVAC Equipment Connections"] = olist
olist = []
olist.append("EvaporativeCooler:Direct:ResearchSpecial")
olist.append("Humidifier:Steam:Electric")
olist.append("Dehumidifier:Desiccant:NoFans")
idfglobals.objectdict["Humidifiers and Dehumidifiers"] = olist
olist = []
olist.append("ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint")
olist.append("ZoneHVAC:IdealLoadsAirSystem")
olist.append("ZoneHVAC:FourPipeFanCoil")
olist.append("ZoneHVAC:WindowAirConditioner")
olist.append("ZoneHVAC:PackagedTerminalAirConditioner")
olist.append("ZoneHVAC:PackagedTerminalHeatPump")
olist.append("ZoneHVAC:EnergyRecoveryVentilator")
olist.append("ZoneHVAC:EnergyRecoveryVentilator:Controller")
olist.append("ZoneHVAC:UnitVentilator")
idfglobals.objectdict["Zone HVAC Forced Air Units"] = olist
olist = []
olist.append("Site:Precipitation")
olist.append("ScheduleTypeLimits")
olist.append("Schedule:Day:Hourly")
olist.append("Schedule:Day:Interval")
olist.append("Schedule:Day:List")
olist.append("Schedule:Week:Daily")
olist.append("Schedule:Week:Compact")
olist.append("Schedule:Year")
olist.append("Schedule:Compact")
olist.append("Schedule:File")
idfglobals.objectdict["Schedules"] = olist
olist = []
olist.append("HeatExchanger:Desiccant:BalancedFlow:PerformanceDataType1")
olist.append("AirLoopHVAC:Unitary:Furnace:HeatOnly")
olist.append("AirLoopHVAC:Unitary:Furnace:HeatCool")
olist.append("AirLoopHVAC:UnitaryHeatOnly")
olist.append("AirLoopHVAC:UnitaryHeatCool")
olist.append("AirLoopHVAC:UnitaryHeatPump:AirToAir")
olist.append("AirLoopHVAC:UnitaryHeatPump:WaterToAir")
olist.append("AirLoopHVAC:UnitaryHeatCool:VAVChangeoverBypass")
olist.append("AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed")
idfglobals.objectdict["Unitary Equipment"] = olist
olist = []
olist.append("LoadProfile:Plant")
olist.append("SolarCollectorPerformance:FlatPlate")
olist.append("SolarCollector:FlatPlate:Water")
olist.append("SolarCollector:FlatPlate:PhotovoltaicThermal")
olist.append("SolarCollectorPerformance:PhotovoltaicThermal:Simple")
olist.append("SolarCollector:UnglazedTranspired")
idfglobals.objectdict["Solar Collectors"] = olist
olist = []
olist.append("AirLoopHVAC:UnitaryCoolOnly")
olist.append("Controller:WaterCoil")
olist.append("Controller:OutdoorAir")
olist.append("Controller:MechanicalVentilation")
idfglobals.objectdict["Controllers"] = olist
olist = []
olist.append("ConvergenceLimits")
idfglobals.objectdict["Compliance Objects"] = olist
olist = []
olist.append("Refrigeration:System")
olist.append("DemandManager:ExteriorLights")
olist.append("DemandManager:Lights")
olist.append("DemandManager:ElectricEquipment")
olist.append("DemandManager:Thermostats")
idfglobals.objectdict["Demand Limiting Controls"] = olist
olist = []
olist.append("CondenserEquipmentOperationSchemes")
olist.append("AvailabilityManager:Scheduled")
olist.append("AvailabilityManager:ScheduledOn")
olist.append("AvailabilityManager:ScheduledOff")
olist.append("AvailabilityManager:NightCycle")
olist.append("AvailabilityManager:DifferentialThermostat")
olist.append("AvailabilityManager:HighTemperatureTurnOff")
olist.append("AvailabilityManager:HighTemperatureTurnOn")
olist.append("AvailabilityManager:LowTemperatureTurnOff")
olist.append("AvailabilityManager:LowTemperatureTurnOn")
olist.append("AvailabilityManager:NightVentilation")
olist.append("AvailabilityManager:HybridVentilation")
idfglobals.objectdict["System Availability Managers"] = olist
olist = []
olist.append("ZoneHVAC:UnitHeater")
olist.append("ZoneHVAC:Baseboard:RadiantConvective:Water")
olist.append("ZoneHVAC:Baseboard:Convective:Water")
olist.append("ZoneHVAC:Baseboard:Convective:Electric")
olist.append("ZoneHVAC:LowTemperatureRadiant:VariableFlow")
olist.append("ZoneHVAC:LowTemperatureRadiant:ConstantFlow")
olist.append("ZoneHVAC:LowTemperatureRadiant:Electric")
olist.append("ZoneHVAC:LowTemperatureRadiant:SurfaceGroup")
olist.append("ZoneHVAC:HighTemperatureRadiant")
olist.append("ZoneHVAC:VentilatedSlab")
idfglobals.objectdict["Zone HVAC Radiative/Convective Units"] = olist
olist = []
olist.append("ZoneHVAC:VentilatedSlab:SlabGroup")
olist.append("AirTerminal:SingleDuct:Uncontrolled")
olist.append("AirTerminal:SingleDuct:ConstantVolume:Reheat")
olist.append("AirTerminal:SingleDuct:VAV:NoReheat")
olist.append("AirTerminal:SingleDuct:VAV:Reheat")
olist.append("AirTerminal:SingleDuct:VAV:Reheat:VariableSpeedFan")
olist.append("AirTerminal:SingleDuct:VAV:HeatAndCool:NoReheat")
olist.append("AirTerminal:SingleDuct:VAV:HeatAndCool:Reheat")
olist.append("AirTerminal:SingleDuct:SeriesPIU:Reheat")
olist.append("AirTerminal:SingleDuct:ParallelPIU:Reheat")
olist.append("AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction")
olist.append("AirTerminal:SingleDuct:ConstantVolume:CooledBeam")
olist.append("AirTerminal:DualDuct:ConstantVolume")
olist.append("AirTerminal:DualDuct:VAV")
idfglobals.objectdict["Zone HVAC Air Loop Terminal Units"] = olist
olist = []
olist.append("CoilSystem:Cooling:DX:HeatExchangerAssisted")
olist.append("EvaporativeCooler:Direct:CelDekPad")
olist.append("EvaporativeCooler:Indirect:CelDekPad")
olist.append("EvaporativeCooler:Indirect:WetCoil")
olist.append("EvaporativeCooler:Indirect:ResearchSpecial")
idfglobals.objectdict["Evaporative Coolers"] = olist
olist = []
olist.append("UtilityCost:Computation")
olist.append("Output:Reports")
olist.append("Output:VariableDictionary")
olist.append("Output:Surfaces:List")
olist.append("Output:Surfaces:Drawing")
olist.append("Output:Schedules")
olist.append("Output:Constructions")
olist.append("OutputControl:SurfaceColorScheme")
olist.append("Output:Table:SummaryReports")
olist.append("Output:Table:TimeBins")
olist.append("Output:Table:Monthly")
olist.append("OutputControl:Table:Style")
olist.append("Output:Variable")
olist.append("Output:Meter")
olist.append("Output:Meter:MeterFileOnly")
olist.append("Output:Meter:Cumulative")
olist.append("Output:Meter:Cumulative:MeterFileOnly")
olist.append("Meter:Custom")
olist.append("Meter:CustomDecrement")
olist.append("Output:SQLite")
olist.append("Output:EnvironmentalImpactFactors")
olist.append("EnvironmentalImpactFactors")
olist.append("FuelFactors")
olist.append("Output:Diagnostics")
olist.append("Output:DebuggingData")
olist.append("Output:PreprocessorMessage")
idfglobals.objectdict["Output Reporting"] = olist
olist = []
olist.append("OutputControl:Sizing:Style")
olist.append("ZoneControl:Humidistat")
olist.append("ZoneControl:Thermostat")
olist.append("ZoneControl:Thermostat:OperativeTemperature")
olist.append("ZoneControl:Thermostat:ThermalComfort")
olist.append("ThermostatSetpoint:SingleHeating")
olist.append("ThermostatSetpoint:SingleCooling")
olist.append("ThermostatSetpoint:SingleHeatingOrCooling")
olist.append("ThermostatSetpoint:DualSetpoint")
olist.append("ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating")
olist.append("ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling")
olist.append("ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling")
idfglobals.objectdict["Zone HVAC Controls and Thermostats"] = olist
olist = []
olist.append("TemperingValve")
idfglobals.objectdict["Non-Zone Equipment"] = olist
olist = []
olist.append("Exterior:WaterEquipment")
olist.append("HVACTemplate:Thermostat")
olist.append("HVACTemplate:Zone:IdealLoadsAirSystem")
olist.append("HVACTemplate:Zone:FanCoil")
olist.append("HVACTemplate:Zone:PTAC")
olist.append("HVACTemplate:Zone:PTHP")
olist.append("HVACTemplate:Zone:Unitary")
olist.append("HVACTemplate:Zone:VAV")
olist.append("HVACTemplate:Zone:VAV:FanPowered")
olist.append("HVACTemplate:System:Unitary")
olist.append("HVACTemplate:System:UnitaryHeatPump:AirToAir")
olist.append("HVACTemplate:System:VAV")
olist.append("HVACTemplate:System:PackagedVAV")
olist.append("HVACTemplate:Plant:ChilledWaterLoop")
olist.append("HVACTemplate:Plant:Chiller")
olist.append("HVACTemplate:Plant:Tower")
olist.append("HVACTemplate:Plant:HotWaterLoop")
idfglobals.objectdict["HVAC Templates"] = olist
olist = []
olist.append("OutputControl:IlluminanceMap:Style")
olist.append("ZoneInfiltration:DesignFlowRate")
olist.append("ZoneInfiltration:EffectiveLeakageArea")
olist.append("ZoneInfiltration:FlowCoefficient")
olist.append("ZoneVentilation")
olist.append("ZoneMixing")
olist.append("ZoneCrossMixing")
olist.append("ZoneEarthtube")
olist.append("ZoneCoolTower:Shower")
idfglobals.objectdict["Zone Airflow"] = olist
olist = []
olist.append("DistrictHeating")
olist.append("CoolingTower:SingleSpeed")
olist.append("CoolingTower:TwoSpeed")
olist.append("CoolingTower:VariableSpeed")
olist.append("CoolingTowerPerformance:CoolTools")
olist.append("CoolingTowerPerformance:YorkCalc")
olist.append("FluidCooler:SingleSpeed")
olist.append("FluidCooler:TwoSpeed")
olist.append("GroundHeatExchanger:Vertical")
olist.append("GroundHeatExchanger:Pond")
olist.append("GroundHeatExchanger:Surface")
olist.append("HeatExchanger:Hydronic")
olist.append("HeatExchanger:Plate")
idfglobals.objectdict["Condenser Equipment and Heat Exchangers"] = olist
olist = []
olist.append("Version")
olist.append("SimulationControl")
olist.append("Building")
olist.append("ShadowCalculation")
olist.append("SurfaceConvectionAlgorithm:Inside")
olist.append("SurfaceConvectionAlgorithm:Outside")
olist.append("HeatBalanceAlgorithm")
olist.append("ZoneCapacitanceMultiplier")
olist.append("Timestep")
idfglobals.objectdict["Simulation Parameters"] = olist


if __name__ == "__main__":
    n = idfglobals.objectdict.keys() 
    for p in n:
        for am in idfglobals.objectdict[p] :
            print am

